如何使用flutter web从firebase中获取所有文档的ID

kh212irz  于 2023-04-12  发布在  Flutter
关注(0)|答案(3)|浏览(177)

我想有一个列表包含的ID的文件在一个集合

使用的id作为字符串与其他东西比较,但我找不到这样做的方式
我写了以下内容

final firebaseid = FirebaseFirestore.instance.collection('Guests').get().then((value) {
  var id = value;
  print(id);
});

但我没能拿到文件ID

qltillow

qltillow1#

你可以像这样得到一个集合中所有id的列表:

void getAllGuestsIds() async {
    final docIds = await FirebaseFirestore.instance.collection('Guests').get().then(
          (value) => value.docs.map((e) => e.id).toList(),
        );
    //return or do something else with docIds
  }
qxgroojn

qxgroojn2#

试试这个

CollectionReference _collectionRef =
FirebaseFirestore.instance.collection('collection');

Future<void> getData() async {
    QuerySnapshot querySnapshot = await _collectionRef.get();

    final allData = querySnapshot.docs.map((doc) => doc.data()).toList();
}
a2mppw5e

a2mppw5e3#

虽然Murat's answer将获取所有文档的数据,但您似乎需要获取文档ID。在这种情况下,您需要:

FirebaseFirestore.instance.collection('Guests').get().then((querySnapshot) {
  for (var doc in querySnapshot.docs) {
    var id = doc.id;
    print(id);
  }
});

这里最大的区别是,代码处理了calling get on a CollectionReference的结果是QuerySnapshot的事实,你需要循环它的docs来获取每个单独的文档。这也在Firebase文档中显示了获取集合中的所有文档。

相关问题