Flutter:如何在 Firestore 中获取集合的所有文档名称

Ber*_*kan 4 flutter google-cloud-firestore

我现在使用 Firestore 在 Flutter 中制作了一个应用程序,我将浏览集合中的所有文档,我想获取文档名称 (id) 和文档的字段,并对其进行处理。我已经制作了一个显示数据的列表视图,但我不能用它做一些事情,例如,将它添加到列表或其他东西。谢谢

小智 8

您可以通过获取以下文件列表来做到这一点:

final QuerySnapshot result =
          await Firestore.instance.collection('myCollection').getDocuments();
final List<DocumentSnapshot> documents = result.documents;
Run Code Online (Sandbox Code Playgroud)

之后,您可以迭代此列表并获取数据:

documents.forEach((data) => print(data));
Run Code Online (Sandbox Code Playgroud)


小智 8

一、参考Firestore

final userRef = Firestore.instance.collection('users');
Run Code Online (Sandbox Code Playgroud)

其次,使迭代器从 fireStore 获取所有文档

 userRef.getDocuments().then((snapshot) {
      snapshot.documents.forEach((doc) {
        print(doc.data);
      });
    });
Run Code Online (Sandbox Code Playgroud)
  • 您可以获取特定数据,例如电子邮件:
print(doc.data['email'];
Run Code Online (Sandbox Code Playgroud)
  • 您可以通过以下方式获取文档 ID
print(doc.documentID);
Run Code Online (Sandbox Code Playgroud)
  • 可以通过以下方式检查文档是否存在
print(doc.exists);
Run Code Online (Sandbox Code Playgroud)


Shu*_*mar 7

这是更新的答案。最近getDocuments在 flutter 中被 firebase 弃用。

我们可以使用它get来查询集合中的所有文档。

像这样

final QuerySnapshot result =
      await Firestore.instance.collection('myCollection').get();
final List<DocumentSnapshot> documents = result.docs;
Run Code Online (Sandbox Code Playgroud)

要列出所有文档,您只需像这样循环文档列表

documents.forEach((DOC) => print(DOC.data()));
Run Code Online (Sandbox Code Playgroud)