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

Firebase 在Firestore中查询具有类型引用的文档,firebase,dart,flutter,google-cloud-firestore,Firebase,Dart,Flutter,Google Cloud Firestore,根据文档,类型reference在NoSQL世界中充当外键。但当我在长笛/飞镖中询问它时。 Firestore中的数据库 [收藏] 注:DocumentOne的数据类型均为reference 参考收集 文档一 FKOne/doc001 FK2/doc002 FKOne doc001 “一些数据”:“只是一些数据” FK2 doc002 “另一个数据”:“只是另一个数据” 示例代码: Firestore.instance.collection('CollectionWith

根据文档,类型
reference
在NoSQL世界中充当外键。但当我在长笛/飞镖中询问它时。 Firestore中的数据库

[收藏]

注:DocumentOne的数据类型均为
reference

  • 参考收集
    • 文档一
      • FKOne/doc001
      • FK2/doc002
  • FKOne
    • doc001
      • “一些数据”:“只是一些数据”
  • FK2
    • doc002
      • “另一个数据”:“只是另一个数据”
  • 示例代码:

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

    {FKOne:DocumentReference的实例,FKTwo:[DocumentReference的实例,'DocumentReference'的实例,'DocumentReference'的实例]]


    您问题中的输出是可以预期的。
    由于您的引用被解析为对象
    打印
    将只打印出“DocumentReference”的
    实例

    ,其中包含有关您的参考资料的所有必要数据。
    在以下代码中,我将打印出每个引用的
    路径
    (它是每个
    文档引用
    对象的getter):

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

    那么你的问题是什么呢?正如标题所说,我想查询该文档中引用的数据,但它给了我“DocumentReference”的
    实例
    。我正在努力解决这个问题。谢谢。我没有深入研究Firestore如何与Flatter一起工作,而是依赖于VisualStudio代码中DartCode提供的Intellisense。它没有弹出
    path
    @clunless,因为它无法知道数据的类型。您可以指定数据的数据类型。如果需要代码建议,可以执行以下操作:
    document.data['FKOne']as DocumentReference