按文档 ID (Python) 获取集合的 Firestore 文档?

Get Firestore documents of a collection by document ID (Python)?

提问人:GianlucaA 提问时间:10/27/2023 最后编辑:GianlucaA 更新时间:10/27/2023 访问量:37

问:

在 Python 中,我使用 firebase_admin python sdk 来查询 Firestore 数据库。

我想通过过滤document_id来获取集合的文档,但是我没有找到任何可行的解决方案。我发现很多用户说我需要使用 FieldPath,但它不在 firebase_admin 包中。

这是我尝试做的一个例子:

   from firebase_admin import firestore
   from google.cloud.firestore_v1.field_path import FieldPath

   numbers_collection_ref = (
        firestore.client()
        .collection("numbers")
    )


    filtered_numbers_docs_ref = numbers_collection_ref.where(
        filter=FieldFilter(
            FieldPath.document_id(),
            ">=",
            "3",
        )
    )

这始终返回 0 个文档。 我已经在 Flutter 的另一个项目中这样做了,并且它在那里工作。

为了回答弗兰克,我可以这样解释: 我有一个包含 10 份文件的收藏编号, 包含document_id的文档:1 含document_id的文件:2 document_id文档:3 等等

我希望获得文档 ID 为 3、4、5、6、7、8、9 和 10 的文档。但是,它正好返回 0 个文档。

我通过执行 filtered_numbers_docs_ref.get() 来执行查询

蟒蛇 谷歌云火库 firebase-admin

评论

0赞 Frank van Puffelen 10/27/2023
“但是它不在firebase_admin包中” 那应该是:cloud.google.com/python/docs/reference/firestore/latest/......事实上,如果你的代码没有生成错误(但“只是”不返回任何结果),则似乎找到了该对象FieldPath
0赞 Frank van Puffelen 10/27/2023
请注意,文档 ID 是一个字符串,因此“>=”可能无法执行您期望它执行的操作。您能否显示您希望代码返回的文档的屏幕截图(来自 Firestore 控制台)?
0赞 Frank van Puffelen 10/27/2023
这也有助于了解您实际如何执行查询以及您对结果的处理方式,即可能记录您获得的结果数量。
0赞 GianlucaA 10/27/2023
我通过编辑帖子来回答,谢谢
0赞 Frank van Puffelen 10/27/2023
请提供:1) 您希望取回的文档的 Firebase 控制台屏幕截图。请记住,文档 ID 是字符串,因此按字典顺序排列,并且按该顺序排列在 之前。顺便说一句,这也适用于字符串值的常规字段,但仅适用于文档 ID。 2)我们可以运行的代码打印一个值,但您需要另一个值。包括代码和值。"10""3"

答: 暂无答案