Как сделать запрос, используя уникальный идентификатор документа в Firestore от флаттера? - PullRequest
0 голосов
/ 05 марта 2020

У меня есть несколько документов, содержащих разные имена работников и их данные, и вместо того, чтобы давать авто, я бы назначил уникальный идентификатор, например, «id_1», «id_2» и т. Д. Для каждого документа. Теперь мой вопрос: как получить доступ к этим различным документам и их конкретным полям, таким как имя и адрес работника, и отобразить их с помощью текстового виджета.

Ответы [ 2 ]

2 голосов
/ 05 марта 2020

вы можете получить снимок документа, используя

DocumentSnapshot documentSnapshot = await Firestore.instance.collection('yourCollection').document('docId').get();

, вы можете получить к нему доступ, просто позвонив

documentSnapshot.data['yourField'];
2 голосов
/ 05 марта 2020

Если вы хотите получить все документы одновременно, вы можете использовать:

StreamBuilder<QuerySnapshot>(
  stream: Firestore().collection('Workers').snapshots(),
  builder: (context, snapshot) {
    if (snapshot.data != null) {
      // Here u will get list of document snapshots
      final List<DocumentSnapshot> documents = snapshot.data.documents;
      // now u can access each document by simply specifying its number
      // u can also use list view to display every one of them
      return ListView.builder(
        itemCount: documents.length,
        itemBuilder: (context, int index) => Text(documents[index].data['name']),
      );
    } else {
      // Show loading indicator here
    }
  },
);

Если вы хотите получить конкретные данные документа (если у вас есть идентификатор документа), то вы можете использовать:

Future<DocumentSnapshot> _getDocument(String documentName) async {
   return await Firestore().collection('Workers').document(documentName).get();
 }

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

documentSnapshot.data['Name']

Я надеюсь, что это поможет:)

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