【问题标题】:How to get Document Name from DocumentReference in Firestore Python如何从 Firestore Python 中的 DocumentReference 获取文档名称
【发布时间】:2021-02-11 16:07:40
【问题描述】:

我有一个文档参考,我正在从对我的 Firestore 数据库的查询中检索该参考。我想使用 DocumentReference 作为另一个查询的查询参数。但是,当我这样做时,它会说

TypeError: sequence item 1: expected str instance, DocumentReference found

这是有道理的,因为我试图在我的更新语句中传递一个 DocumentReference:

db.collection("Teams").document(team).update("Dictionary here") # team is a DocumentReference

有没有办法从DocumentReference 获取文档名称?现在,在您将其标记为重复之前:我尝试查看文档 here 和问题 here,尽管文档非常混乱且问题没有答案。

任何帮助表示赞赏,在此先感谢您!

【问题讨论】:

    标签: python firebase google-cloud-firestore


    【解决方案1】:

    是的,拆分.refPath。文档“名称”始终是拆分后的最后一个元素;像 lodash _.last() 这样的东西可以工作,或者任何其他识别数组中最后一个元素的技术。

    注意,顺便说一句,refPath 是文档的完整路径。当您通过collectionGroup() 查找文档时,这非常 非常有用(例如:我经常使用它) - 它允许您解析找到 parent 特定文档来自的文档/集合。

    另请注意:有一个伪字段__name__ 可用。 (实际上是documentID() 的别名)。尽管有它的名称,但它会将完整路径(即refPath)返回到文档而不是本身的文档ID。

    【讨论】:

    • 这很有帮助。谢谢!
    【解决方案2】:

    我想我明白了——通过team.path.split("/")[1] 我可以获得文档名称。虽然这可能不适用于所有 Firestore 数据库(如子集合),但如果有人有更好的解决方案,请继续。谢谢!

    【讨论】:

      猜你喜欢
      • 2019-04-24
      • 1970-01-01
      • 2020-01-15
      • 1970-01-01
      • 1970-01-01
      • 2018-07-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多