Я пытался получить данные из Firestore для будущего разработчика Flutter, но при первой сборке я получаю сообщение об ошибке, я получаю данные после обновления - PullRequest
0 голосов
/ 21 марта 2020

введите описание изображения здесь [введите описание изображения здесь] [2] Future _getName () async {return await Firestore.instance.collection ("admin_details"). Document (_username) .get (); }

FutureBuilder<DocumentSnapshot>(
                  future: _getName(),
                  builder: (context,snapshot) {
                    if (snapshot.connectionState == ConnectionState.done) {
                      if (snapshot.hasData) {
                        if (snapshot.data != null) {
                          return Text(snapshot.data['first_name']);
                        }
                        else {
                          return Text("Loading...");
                        }
                      }

                      else {
                        return Text("No Data");
                      }
                    }
                    else{
                      return null;
                    }
                  }
              ),

════════ Исключение, обнаруженное библиотекой виджетов ════════════════════════════ Следующее NoSuchMethodError было брошено сборкой FutureBuilder (грязный, состояние: _FutureBuilderState # 8f31b): метод '[] был вызван на ноль. Получатель: null Пробный вызов:

Соответствующий виджет, вызывающий ошибку, был: FutureBuilder file: /// D: /Flutter/ecoleami1_0/lib/StudentActivity.dart: 52: 28 Когда возникло исключение, это было стек:

0 Object.noSuchMethod (dart: core-patch / object_patch.dart: 53: 5)

1 DocumentSnapshot. [] (пакет: cloud_firestore / src / document_snapshot.dart: 31:42)

2 _StudentActivityPageState.build. (пакет: ecoleami1_0 / StudentActivity.dart: 57: 50)

3 _FutureBuilderState.build (пакет: flutter / src / widgets / asyn c .dart)

4 StatefulElement.build ( пакет: flutter / src / widgets / framework.dart: 4334: 27)

... ══════════════════════════════ ══════════════════════════════════════════════════ ═════════════════════════

Кто-нибудь может мне помочь, пожалуйста?

Ответы [ 3 ]

0 голосов
/ 22 марта 2020

Я полагаю, что ошибка вызвана неправильным управлением состоянием в приложении.

0 голосов
/ 22 марта 2020

Попробуйте это

StreamBuilder(
            stream: Firestore.instance
                .collection("admin_details")
                .document('name of the document')
                .snapshots(),
            builder: (context, snapshot) {
              if (snapshot.hasData) {
                var username = snapshot.data;
                return Text(username['first_name']);
              }
            },
          ),
0 голосов
/ 22 марта 2020

Я сейчас на телефоне, поэтому не уверен на 100%, но это может быть так, потому что ваш код возвращает нуль, когда состояние соединения отличается от того, что было сделано:

Замените строку «вернуть ноль» с возвратом текста («загрузка»);

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