Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 我怎样才能在Firestore中获得一个集合的所有文档名_Flutter_Google Cloud Firestore - Fatal编程技术网

Flutter 我怎样才能在Firestore中获得一个集合的所有文档名

Flutter 我怎样才能在Firestore中获得一个集合的所有文档名,flutter,google-cloud-firestore,Flutter,Google Cloud Firestore,我现在用Firestore在Flatter中制作了一个应用程序,我会浏览一个集合中的所有文档,我想获得文档名(id)和文档字段,并对其进行处理。我已经制作了一个显示数据的列表视图,但是我不能用它来做一些事情,例如,将它添加到列表或其他东西中。 谢谢您可以通过获取以下文档列表来实现: final QuerySnapshot result = await Firestore.instance.collection('myCollection').getDocuments(); f

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

您可以通过获取以下文档列表来实现:

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

首先,参考Firestore

final userRef = Firestore.instance.collection('users');
其次,使用迭代器从fireStore获取所有文档

 userRef.getDocuments().then((snapshot) {
      snapshot.documents.forEach((doc) {
        print(doc.data);
      });
    });
  • 例如,您可以获取电子邮件等特定数据:
  • 您可以通过以下方式获取文档Id:
  • 可以通过检查文档是否存在
以下是最新的答案。 最近,firebase在Flatter中弃用了
getDocuments

相反,我们可以使用
get
查询集合中的所有文档

像这样

final QuerySnapshot result =
      await Firestore.instance.collection('myCollection').get();
final List<DocumentSnapshot> documents = result.docs;
documents.forEach((data) => print(data));

您还可以通过使用FutureBuilder包装小部件来获取文档名称 像这样:

FutureBuilder(
未来:FirebaseFirestore.instance
.集合(“集合名称”)
.get(),
生成器:(上下文,异步快照){
if(snapshot.hasData){
QuerySnapshot documents=snapshot.data;
列表单据=documents.docs;
docs.forEach((数据){
打印(data.id);
});
}否则{
打印(“nodata”);
}
返回容器();
})
正如Shubham所说,
getDocuments
现在已被弃用,因此如果您只想返回文档的名称,您应该执行以下操作:

final db = FirebaseFirestore.instance;
var result=await db.collection('Pets').get();
result.docs.forEach((res) {print(res.id); });
您还可以使用
where
打印特定的文件,如下所示:

var result=await db.collection('Pets').where("sex",whereIn:["Male"] ).get();
result.docs.forEach((res) {print(res.id); });

祝我好运。你的问题有点含糊不清。你到底坚持什么?您是否阅读了文档并看到了示例代码?
final QuerySnapshot result =
      await Firestore.instance.collection('myCollection').get();
final List<DocumentSnapshot> documents = result.docs;
documents.forEach((data) => print(data));
FutureBuilder(
              future: FirebaseFirestore.instance
                  .collection("collection_name")
                  .get(),
              builder: (context, AsyncSnapshot<QuerySnapshot> snapshot) {
                if (snapshot.hasData) {
                  QuerySnapshot documents = snapshot.data;
                  List<DocumentSnapshot> docs = documents.docs;
                  docs.forEach((data) {
                    print(data.id);
                  });
                } else {
                  print("nodata");
                }
                return Container();
              })
final db = FirebaseFirestore.instance;
var result=await db.collection('Pets').get();
result.docs.forEach((res) {print(res.id); });
var result=await db.collection('Pets').where("sex",whereIn:["Male"] ).get();
result.docs.forEach((res) {print(res.id); });