Как отобразить текст из данных пожарного магазина во флаттере? - PullRequest
0 голосов
/ 06 февраля 2020

Я новичок в firebase / firestore и хотел добавить firestore в мое приложение. Мое приложение в настоящее время имеет логин и добавляет данные в базу данных с UID, установленным в качестве имени документа. Консольное изображение Я хочу отобразить имя на странице своего профиля приложений. Как бы мне этого добиться?

Вызывается с этим

Center(child:building(context),),
  Widget building(BuildContext context) {
    return new StreamBuilder(
        stream: Firestore.instance
            .collection('UserData')
            .document(getUID())
            .snapshots(),
        builder: (context, snapshot) {
          if (!snapshot.hasData) {
            return new Text("Loading");
          } else {
            return new Text(snapshot.data.toString());
          }
        });
  }

Текущая ошибка Изображение ошибки

Предыдущая ошибка

Сообщение об ошибке

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 06 февраля 2020

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

 Widget building(BuildContext context) {
    return new StreamBuilder<DocumentSnapshot>(
        stream: Firestore.instance
            .collection('UserData')
            .document('TjMJDFd940UtLORgdYND771GYwG2')
            .snapshots(),
        builder: (context, snapshot) {
          if (!snapshot.hasData) {
            return new Text("Loading");
          } else {
            Map<String, dynamic> documentFields = snapshot.data.data;
            return Text(documentFields["First Name"] +
                " " +
                documentFields["Last Name"]);
          }
        });
  }

Обратите внимание, что TjMJDFd940UtLORgdYND771GYwG2 относится к documentID.

0 голосов
/ 06 февраля 2020

Документы для API Flutter Firebase спрятаны и, по общему признанию, их трудно найти. Вот документация по классу QuerySnapshot .

Вы пытаетесь просмотреть свойство .document объекта QuerySnapshot, поэтому выдается ошибка, так как это свойство не существует. Попробуйте использовать snapshot.documents, чтобы получить список документов для повторения (или просто используйте snapshot.documents[0], если всегда будет только один), а затем прочитайте данные из этого, то есть: snapshot.documents[0].data[documentId]['First Name']. Я удалил кавычки из ссылки documentId, так как мы хотим индексировать значение переменной, а не просто строку "documentId".

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