Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.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
Flatter和firebase及子系列_Firebase_Flutter_Listview_Google Cloud Firestore_Collections - Fatal编程技术网

Flatter和firebase及子系列

Flatter和firebase及子系列,firebase,flutter,listview,google-cloud-firestore,collections,Firebase,Flutter,Listview,Google Cloud Firestore,Collections,我一直在到处寻找。希望有人能帮忙 firestore设置: 用户集合->用户ID列表->项目集合->项目ID列表->项目名称等 我能找到的很多例子都是针对一个特定的用户ID的。我想要的是从所有userid加载所有itemIDs。因此: 用户1 ----项目1 ----项目2 ----项目3 用户2 ----项目1 ----项目2 等等 我不需要像上面那样显示它,我希望显示所有项目(最终使用userID来操作数据)。有些人建议使用嵌套式拖缆,但这会消耗大量电力(我不喜欢这个想法) 然后我考虑使

我一直在到处寻找。希望有人能帮忙

firestore设置: 用户集合->用户ID列表->项目集合->项目ID列表->项目名称等

我能找到的很多例子都是针对一个特定的用户ID的。我想要的是从所有userid加载所有itemIDs。因此:

  • 用户1
  • ----项目1
  • ----项目2
  • ----项目3
  • 用户2
  • ----项目1
  • ----项目2
  • 等等
我不需要像上面那样显示它,我希望显示所有项目(最终使用userID来操作数据)。有些人建议使用嵌套式拖缆,但这会消耗大量电力(我不喜欢这个想法)

然后我考虑使用某种2D for循环,或者我还看到了一个for each循环。我相信这些会更合适

我知道如何获得用户列表,但我需要获得每个用户的项目列表。。。我怎么才能得到那份!?目前,我正在尝试在具有平铺的listview中显示信息,但现在我只需要知道如何访问项目列表

我试过这么做

List listUsers = await FirebaseFirestore.instance
    .collection("users")
    .get();


for (int i = 0; i < listUsers.length; i++) {
  FirebaseFirestore.instance
      .collection("users")
      .doc(listUsers[i].documentID.toString())
      .collection("items")
      .snapshots();
}
然后访问列表项及其值,如下所示:

print('OMG------------ ${listItems[0].documentID.toString()}'); //document ID
print('OMG------------ ${listItems[0].data()['item_name']}'); // specific value within collection

如果我理解正确,这看起来像是由具有相同ID的所有集合组成的
collectionGroup
示例。您可以在上查看一般概念


当然,这个特性也有颤振实现。您可以找到它。

赢家!集体晚餐!我编辑了我的问题以显示答案。很高兴你们能把它弄明白,因为我在弗利特并没有任何“操场”来做这件事。我很乐意接受这个答案。
List listItems = await FirebaseFirestore.instance
    .collectionGroup('items')
    .get()
    .then((value) => value.docs);
print('OMG------------ ${listItems[0].documentID.toString()}'); //document ID
print('OMG------------ ${listItems[0].data()['item_name']}'); // specific value within collection