Flutter Firestore嵌套查询

时间:2018-06-16 13:20:22

标签: dart google-cloud-firestore flutter

有没有办法使用Flutter在Firestore中读取嵌套集合?我有以下数据结构

Users:
 - userId:
     - name: value,
     - surname: value;
     - addresses:
         - addressId:
              - street:value,
              - city: value

我可以使用以下代码阅读第一个集合:

Firestore.instance.collection("users").document("userId")
        .snapshots().listen((snapShot) {});

我有没有办法从上面的代码访问地址,或者我必须运行另一个直接获取如下地址的命令:

Firestore.instance.collection("users").document("userId").
        collections("addresses").snapshots().listen((snapShot) {});

2 个答案:

答案 0 :(得分:1)

从Firestore读取文档不会自动从该文档的子集合中读取数据。如果您需要来自子集的数据,则需要另外阅读。

答案 1 :(得分:0)

我正在阅读Firestore中的嵌套集合以填充Expansion小部件。在https://stackoverflow.com/a/51057195/5013735

中查看我的解决方案

诀窍在于创建一个像这样的结构:

  List<Widget> _getChildren() {
    List<Widget> children = [];
    documents.forEach((doc) {
      children.add(
        ProjectsExpansionTile(
          name: doc['name'],
          projectKey: doc.documentID,
          firestore: firestore,
        ),
      );
    });
    return children;
  }