深入查询Firestore 2子集合

时间:2020-01-16 15:24:38

标签: flutter google-cloud-firestore

如何查询文档中父集合深处的两个子集合。

类似的东西给我一个错误

Firestore.instance
    .collection('col')
    .document(docId)
    .collection('anotherCol')
    .document(anotherDocId)
    .collection('yetAnotherCol')
    .snapshots()

这有效

Firestore.instance
    .collection('col')
    .document(docId)
    .collection('anotherCol') 
    .snapshots()

为什么第一个不起作用?

修改 更多信息

因此实际上,它不会向查询本身发出错误,因为它没有返回数据,而该错误来自尝试读取结果的内容。

对此进行说明:我正在像这样的StreamBuilder中运行它:

return StreamBuilder(
      stream: Firestore.instance
          .collection('col')
          .document(docId)
          .collection('anotherCol')
          .document((anotherDocId)
          .collection('yetAnotherCol')
          .snapshots(),
      builder: (context, snapshot) {
        print('group length: ${snapshot.data.documents.length}');

        ....
      },
    );

因此,即使数据库中集合的末尾有两个文档,上述流返回的长度也为0。

我意识到的另一件事是我无法流传输anotherDocId,即无法读取内容。我可以通过snapshot.data.documentID获取其ID,如果我查询集合(在本例中为“ anotherCol”),则可以读取其ID,然后通过循环运行它-这是预期的行为。再次重申,查询中第二个集合之后的内容将无法正常运行。

0 个答案:

没有答案