как я могу показать документ? - PullRequest
0 голосов
/ 13 сентября 2018

Я пытаюсь получить документ один за другим ... Я использую приведенный ниже код его работы, но в консоли он показывает мне ошибку, как StreamBuilderBaseState> # de08b): Получатель «документы» был назван нулевым. Получатель: ноль Пробный звонок: документы

new StreamBuilder<QuerySnapshot>(
          stream: Firestore.instance.collection("Quiz").where("topice",isEqualTo: widget.topic).where("section",isEqualTo: widget.section).snapshots(),
          builder: (BuildContext context,
              AsyncSnapshot<QuerySnapshot> snapshot,) {
            int length= snapshot.data.documents.length;
            if (!snapshot.hasData)
              return new Container(child: Text(""),);

            return ListView(
              children: <Widget>[
                Text(widget.scoren.toString()),
                Text(snapshot.data.documents[cunter]["Description"]),
                Row(
                  children: <Widget>[
                    CupertinoButton(child: Text("COMMENTS"), onPressed: null),
                    RaisedButton(onPressed: (){
                      setState(() {
                        cunter++;
                      });
//                    Navigator.of(context).push(new MaterialPageRoute(builder: (context)=>new MyApp()));

                    },child: Text("NEXT"),)
                  ],
                )

              ],
            )

1 Ответ

0 голосов
/ 13 сентября 2018

Вы пытаетесь получить доступ к свойству длины списка документов, прежде чем проверять, есть ли на снимке какие-либо данные.

Попробуйте инвертировать эти строки, как это

//Check if the snapshot has data
if (!snapshot.hasData) return Container(child: Text(""));
//If you get here it means you have data
int length= snapshot.data.documents.length;

Также помните, что в Dart 2 new keyworkd больше не нужен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...