【问题标题】:How to get firestore document ID from document snapshot?如何从文档快照中获取 Firestore 文档 ID?
【发布时间】:2019-08-02 11:23:58
【问题描述】:
QuerySnapshot querySnapshot = await _collectionRef   
                                  .limit(1)
                                  .orderBy('date')                                                                    
                                  .getDocuments();
var list = querySnapshot.documents;

querySnapshot.documents.map((document) { 
    print('Document : $document'); // not printing anything.
  });

if(list.length > 0) {
   print('ID : ${list[0].documentID}'); // not working
}

这是我尝试过的确切代码... 代码有什么错误?

【问题讨论】:

    标签: flutter google-cloud-firestore


    【解决方案1】:

    对于 DocumentSnapshot, document.id

    【讨论】:

    • 这与此处已有的答案有何不同?
    • 不是 .documentId 是 .id
    • 这已经发布了,包括提到以前的属性已被弃用
    【解决方案2】:
    product.id
    

    documentID 已弃用,不应使用。已弃用,取而代之的是 .id。 尝试将已弃用成员的使用替换为替换。

    【讨论】:

      【解决方案3】:

      另外,在字符串插值时使用反引号。

      print('ID : ${list[0].documentID}'); // not working
      print(`ID : ${list[0].documentID}`); // working
      

      【讨论】:

        【解决方案4】:

        对于 DocumentSnapshot, document.documentID

        【讨论】:

          【解决方案5】:

          根据API documentationDocumentSnapshot 有一个documentId 属性,所以我希望它可以工作:

          querySnapshot.documents[0].documentID
          

          【讨论】:

          • 如果不是您所期望的,它会做什么?
          • 你的线路在工作!但我尝试了不同的方式。我会更新代码。请告诉我其中有什么问题。
          • 如果您的问题与您提出的第一个问题不同,您应该再发一个帖子,而不是编辑您现有的帖子。
          • 对不起。同样的问题。一切都是一样的。只是我之前删除了一个变量来存储 querySnapshot。现在我已经更新了,这是我的代码。
          • 而不是map,我必须使用forEach。不知道为什么列表变量没有打印任何东西。我正在使用完整路径 querySnapshot.documents[0].documentID 感谢您的帮助..
          猜你喜欢
          • 2020-10-12
          • 2020-12-16
          • 1970-01-01
          • 2018-09-03
          • 2020-12-05
          • 2018-03-19
          • 1970-01-01
          • 2023-03-19
          • 2020-12-27
          相关资源
          最近更新 更多