如何访问Firestore中的嵌套项目?

时间:2020-07-22 10:19:35

标签: flutter dart google-cloud-firestore

我无法从Firestore访问数据。 添加数据效果很好。 通过一个简单的示例访问也可以: /cars/FaTFlIlSHl5qYSdyg0EZ

thisArg

但是当我想使用以下结构访问嵌套数据时:

/Stände/Testing/Tue, 7.21.2020/Holstenstraße

Firestore.instance
              .collection('cars')
              .snapshots()

           Text(snapshot.data.documents[0]['brandname']),

我得到了错误:

 Firestore.instance
              .collection('Stände')
              .snapshots(),
          
           Text(snapshot.data.document('Testing').collection('Tue, 
           7.21.2020').document('Holstenstraße')['Holstenstraße']['erdbeeren'] 
           ['erdbeerenAB']),

1 个答案:

答案 0 :(得分:2)

一旦获得QuerySnapshot,就无法直接对其执行另一个Firebase查询。

1)。假设您要测试集合('Tue,7.21.2020')的所有文档。

Firestore.instance.collection('Stände')
        .document('testing')
        .collection('Tue, 7.21.2020')
        .getDocuments().then((ds) {
          List<DocumentSnapshot> list = ds.documents;
    });
  • 每个数据库将包含3个文档

  • 然后您可以通过

    访问

    list.elementAt(index).data ['Holstenstraße'] ['erdbeeren'] ['erdbeerenAB']

2)。如果只需要一个特定文档=> collection.document.collection.onlyOneDocument(需要文件ID)

Firestore.instance.collection('Stände')
        .document('testing')
        .collection('Tue, 7.21.2020')
        .document('Holstenstraße').get().then((DocumentSnapshot ds) {
          print(ds.data['Holstenstraße']['erdbeeren']['erdbeerenAB']);
    });