仅将现有子集合放入列表Firebase(flutter)

时间:2020-08-13 13:08:23

标签: firebase flutter firebase-realtime-database

我一直试图将一个子集合的文档快照放入列表中。它的代码是这样的:-

ALLOCATIONASSETTYPE != 'Cash'

有两个配置文件,其中只有一个具有子集合getcoffeebuyerlist() async { DocumentSnapshot coffeebuyers; List<DocumentSnapshot> finalCoffeBuyerList = []; for (var i = 0; i < profiles.length; i++) { coffeebuyers = await Firestore.instance .collection('profileData') .document(profiles[i].uid) .collection('coffeeprices') .document(profiles[i].uid) .get(); finalCoffeBuyerList.add(coffeebuyers); } return finalCoffeBuyerList; }

我在这里的疑问是,尝试获取子集合的快照,我是否会自动为第二个配置文件创建一个空文档,而第二个配置文件不存在该子集合,并将其放入'coffeeprices'列表中?

还是仅将那些已经存在的(在我的情况下为一个)子集合添加到此列表中?

1 个答案:

答案 0 :(得分:0)

您在此处的代码将永远不会创建任何文档。如果文档不存在,那么get()不会创建文档。您应该检查返回的DocumentSnapshot,以查看文档是否实际为exists。像这样:

if (coffeebuyers.exists) {
  finalCoffeBuyerList.add(coffeebuyers);
}

创建文档的唯一方法是使用add()set()