无法从StreamBuilder(Flutter)查询子集合

时间:2020-04-27 22:06:14

标签: firebase flutter dart google-cloud-firestore stream-builder

我正在尝试从StreamBuilder查询子集合,但是查询返回零个文档,尽管子集合中有一个文档。查询父集合将返回正确数量的文档,并且已验证传递给子集合的文档ID。我想念什么?

StreamBuilder<QuerySnapshot>(
                stream: _firestore
                    .collection('books')
                    .document(documentID)
                    .collection('enquiries')
                    .snapshots(),
                builder: (context, snapshot) {
                  if (!snapshot.hasData) {
                    return Text('You have not received any enquiries yet!');
                  } else {
                    final numberOfDocs = snapshot.data.documents.length;
                    print(numberOfDocs); // HELP HERE! returns 0, although a document exists in the subcollection
                    print(documentID);   // returns the expected document ID
                    ...

Firestore Subcollection:

documentID passed to the .document() method

1 个答案:

答案 0 :(得分:1)

这对于Firestore中的初学者来说非常令人困惑,但是从您提供的屏幕截图看来,子集合中实际上没有任何文档。

如果文档ID的名称为斜体,则表示该文档具有子集合,但文档本身没有。

当您创建文档的子集合然后稍后删除文档时,会发生这种情况。

请确保在books / kOhVCohNlbQWkGem06RF /查询中创建一些文档,您应该一切顺利!