【发布时间】:2019-03-19 17:54:06
【问题描述】:
我正在使用 Firestore 作为 Flutter 项目的后端,并且数据库嵌套在文档下具有子集合。这是结构:
我有从 Root 集合中找到的数据,我正试图从那里获取子集合,但我不知道如何去做。
应该有可用的get() 方法,但我没有。
这是函数的代码:
void _getNext(DocumentSnapshot doc) async {
int v = doc.data.length;
String id = doc.documentID;
print('length = $v \t id= $id');
await doc.reference.get().then((val){
val.data.forEach((k, v){
print('k = $k & v = $v');
});
});
await doc.data.forEach((k,v){
print("new k = $k, v = $v");
});
await doc.reference.collection(id).getDocuments().then((val){
val.documents.forEach((e){
print("another k = $e");
});
});
}
按下“文学”文档(来自根集合)得到的唯一响应是:
I/flutter (13395): length = 0 id= Literature
此文档有多个子集合,但返回的长度为零。当我将虚拟数据添加到字段时,其他代码块工作正常,但在我的情况下不需要。
感谢您的帮助。
【问题讨论】:
-
正如 mirkancal 回答的那样,子集合嵌套在特定文档下。您首先需要获取一个文档(或至少是一个
DocumentReference()),然后才能在它下面获取一个子集合。 -
您应该编辑问题以显示您正在使用的数据库结构。现在您只是说存在集合、文档和子集合,但我们不知道它们是什么样的,或者您在子集合中查找哪些文档。基本上,您需要说明输入和所需的输出,以及您尝试的方法与您期望的不同。
标签: firebase flutter google-cloud-firestore