在Firestore中具有类型引用的查询文档

时间:2018-09-01 14:48:53

标签: firebase dart flutter google-cloud-firestore

根据Cloud Firestore=>Data type文档,键入reference在NoSQL世界中充当外键。但是当我在Fluter / Dart中查询它时。 Firestore中的数据库。

[收藏夹]

注意: DocumentOne的数据类型均为reference

  1. CollectionWithReference
    • DocumentOne
      • FKOne / doc001
      • FKTwo / doc002
  2. FKOne
    • doc001
      • “ someData”:“只是一些数据”
  3. FKTwo
    • doc002
      • “ anotherData”:“仅另一个数据”

示例代码:

Firestore.instance.collection('CollectionWithReference').snapshots()
  .listen((data) => data.documents.forEach((document) => print(document.data)));

输出

  

{FKOne:“ DocumentReference”的实例,FKTwo:[“ DocumentReference”的实例,“ DocumentReference”的实例,“ DocumentReference”的实例}}

1 个答案:

答案 0 :(得分:1)

您问题中的输出是预期的
因为您的 引用 被解析为对象 ,所以print仅打印出Instance of 'DocumentReference'

Here you can take a look at the class DocumentReference,其中包含有关您的参考的所有必要数据。
在下面的代码中,我将打印出每个引用的path(这是每个DocumentReference对象的吸气剂):

Firestore.instance.collection('CollectionWithReference').snapshots().listen((data) {
  data.documents.forEach((document) {
      print(document.data['FKOne'].path);
      document.data['FKTwo'].forEach((documentReference) => print(documentReference.path));
  });
});