Redy
Redy

Reputation: 31

Flutter Retrieve Data from Firebase

I tried this tutorial https://www.youtube.com/watch?v=ZiagJJTqnZQ

but my data didn't show, the length is still showing 0

This is my firebase https://i.sstatic.net/JlDCc.png

Code

questions.dart

class Questions {
  String question, questioner, status;
  Questions(this.question, this.questioner, this.status);
}

timeline.dart

import 'package:flutter/material.dart';
import 'questions.dart';
import 'package:firebase_database/firebase_database.dart';

class TimeLine extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
    return _TimeLineState();
  }
}

class _TimeLineState extends State<TimeLine> {
  final primaryColor = const Color(0xFF006FB9);
  final bgColor = const Color(0xFFFEFEFE);

  List<Questions> questionsList = [];

  @override
  void initState() {
    super.initState();

    DatabaseReference questionsRef = FirebaseDatabase.instance.reference().child("Questions");

    questionsRef.once().then((DataSnapshot snap)
    {
      var KEYS = snap.value.keys;
      var DATA = snap.value;

      questionsList.clear();

      for(var individualKey in KEYS) {
        Questions questi = new Questions(
          DATA[individualKey]['question'],
          DATA[individualKey]['questioner'],
          DATA[individualKey]['status'],
        );

        questionsList.add(questi);
      }

      setState(() {
        print('Length : $questionsList.length');
      });
    });
  }


  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        elevation: 1,
        title: Text('Discover'),
        backgroundColor: primaryColor,
      ),
      backgroundColor: bgColor,
      body: Container(
        child: Text(
          questionsList.length.toString()
        )
        /*questionsList.length == 0 ? new Text("No Blog Post Available") : new ListView.builder(
            itemCount: questionsList.length,
            itemBuilder: (_, index) {
              return QuestionsGrid(questionsList[index].question, questionsList[index].questioner, questionsList[index].status);
            }
        ),*/
      ),
    );
  }

  Widget QuestionsGrid(String question, String questioner, String status) {
    return new Container(
      height: 1000,
      width: 1000,
      child: Text(
        question
      ),
    );
  }
}

Upvotes: 1

Views: 1460

Answers (1)

Hardik Kumbhani
Hardik Kumbhani

Reputation: 2021

Your code is perfect but you have to change in to your firebase code line like

DatabaseReference questionsRef = FirebaseDatabase.instance.reference().child("questions");

Instand of

DatabaseReference questionsRef = FirebaseDatabase.instance.reference().child("Questions");

Thanks

Upvotes: 2

Related Questions