Я хочу отобразить указанное значение c в построитель списка из базы данных Firebase в реальном времени, но я не могу сделать это во флаттере - PullRequest
0 голосов
/ 26 февраля 2020

В нем есть функция getQuizData (), которая получает данные из Firebase, но когда я пытаюсь просмотреть эти данные на экране через построитель списка, выдается ошибка (У класса '_CompactIterable' нет метода экземпляра '[ ] '.) (Получатель: Экземпляр' _CompactIterable ') . Я старался изо всех сил, но не могу решить эту проблему. Я новичок, чтобы трепетать, пожалуйста, помогите мне решить эту проблему

В нем есть функция getQuizData (), которая получает данные из Firebase, но когда я пытаюсь просмотреть эти данные на экране через построитель списка, он дает ошибка (у класса '_CompactIterable' нет метода экземпляра '[]'.) (Получатель: экземпляр _CompactIterable ') . Я старался изо всех сил, но не могу решить эту проблему. Я новичок, чтобы трепетать, пожалуйста, помогите мне решить эту проблему



    import 'dart:convert';

    import 'package:flutter/material.dart';
    import 'package:http/http.dart' as http;


    class MainQuiz extends StatefulWidget{
      static final routName = "Quizezdata";
      @override
      State createState() {
        // TODO: implement createState
        return Quizdata();
      }

    }

    class Quizdata extends State{
      String Stdname;
      String Stdcls;
      String Stdhouse;
      String Stdsch;
      String Stdsbj;
      String Stdsec;
      int count=0;

      Future getQuizData() async{
        // print(student_naame.text);
        String url = "https://quizapp-be292.firebaseio.com/quizez.json";



        try {
          final responce = await http.get(url);
          // print(responce.body);

          final extractData = json.decode(responce.body) as Map;

          print("HAHAHAHAHAHHA");
          return extractData.values;




        } catch (error) {
          print(error);
        }
    //    if(count ==0){
    //      showAlert(ctx);
    //    }
      }
      void showAlert(BuildContext ctx){
        var alerBox = AlertDialog(
          title: Text("No such user exist"),
        );
        showDialog(
            context: ctx,
            builder: (_){
              return alerBox;
            }
        );
      }

      @override
      Widget build(BuildContext context) {
        var routArgs = ModalRoute.of(context).settings.arguments as Map;
         Stdname = routArgs['StudentNme'];
         Stdcls = routArgs['StudentClas'];
         Stdsec = routArgs['StudentSec'];
         Stdhouse = routArgs['StudentHuse'];
         Stdsch = routArgs['StudentSch'];
         Stdsbj = routArgs['StudentSbj'];
        // TODO: implement build
        return
          Scaffold(
            appBar: AppBar(
              title: Text("Quizez"),

            ),
            body:SingleChildScrollView(
              child:Container(
               // height: double.infinity,
                child: FutureBuilder(future:getQuizData(),builder: (_,snapshot){

                  if(snapshot.connectionState == ConnectionState.waiting){
                    return Center(
                      child: Text("Loading"),
                    );
                  }else{
                    return Container(
                      width: double.infinity,
                      height: 440,
                      child:ListView.builder(
                          itemBuilder: (_,index){
                            return ListTile(
                              title: Text(snapshot.data[index].key),
                            );
                          },
                          itemCount: snapshot.data.length,
                        ),
                    );
                  }

                })

            ),
          )
        );


      }

    }


...