当前位置: 首页 > 知识库问答 >
问题:

查询firestore数据库中的文档id

周鸿云
2023-03-14

我想在firestore数据库中查询文档id。目前我有以下代码:

db.collection('books').where('id', '==', 'fK3ddutEpD2qQqRMXNW5').get()

我没有结果。但当我查询其他字段时,它会起作用:

db.collection('books').where('genre', '==', 'biography').get()

文档id的名称是如何调用的?

共有3个答案

任飞鸣
2023-03-14

您可以使用关键字来在查询中使用文档ID。

代替这个db.collection('book'). doc('fK3ddutEpD2qQqRMXNW5'). get()你可以写

db.collection(__name__', '==' ,'fK3ddutEpD2qQQRMXNW5)

在这种情况下,应该返回一个长度为1的数组。

Firebase文档在规则留档中提到了这个特性https://firebase.google.com/docs/reference/rules/rules.firestore.Resource

马天逸
2023-03-14

试试这个:

db.collection('books').doc('fK3ddutEpD2qQqRMXNW5').get()

(第一个查询是寻找一个名为“id”的显式用户集字段,这可能不是您想要的。)

瞿子濯
2023-03-14

我有点晚了,但实际上有办法做到这一点

db.collection('books').where(firebase.firestore.FieldPath.documentId(), '==', 'fK3ddutEpD2qQqRMXNW5').get()

当您处理firebase安全规则并且只想查询允许访问的记录时,这可能很有用。

 类似资料:
  • 正如我从“云火数据模型”指南中得到的,“每个文档都由一个名称标识。”是否可以通过该文档标识符(即名称或ID)查询集合? 例如,集合“Things”中的文档具有IDs、1、2等。: 是否可以查询 ID 小于 100 的文档?

  • 这是当我尝试使用'where'而不是'where field'时收到的错误,尽管从文档中看,'where'似乎是查询Firestore数据库的有效命令。是不是我需要下载其他的豆荚?我有的是:pod'firebase/analytics'pod'firebase/auth'pod'firebase/core'pod'firebase/firestore'

  • 在Firestore中,我有一个用户集合,在每个用户文档中存储一个名为favorites的集合,该集合包含标记为favorites(存储)的文档的ID 我可以采取另一种方法来获取两个集合并手动过滤它们,但我使用的是Firebase RecycerView适配器,它显示的所有数据都基于查询,这将使事情更加高效。 这样的结果是如何实现的呢?如果需要进一步的解释,请告诉我

  • 为了查询子集合和父文档,我对firest的文档及其最佳实践有一些问题。我试图使用Typecript在我的Firebase函数中进行查询。 DB: ├── 用户(集合) │ └── 用户(ID为的文档) │ │ └── 计划(子集合) 我有一个数组中的用户ID列表,我需要从用户文档和当前文档的子集合计划中收集信息。 但是如何从用户文档和子集合(计划)文档(当前)中获取数据,我不知道在场景中最有效的查

  • 我有文档,其中包含子集合。现在,我想获取子集合中至少有一项的所有项目。这可能吗? 类似于: < code>getDocs(collection(getDB()," Projects)),其中(" Items.size ","

  • 最近,我从firebase实时数据库迁移到firebase firestore,因为它说查询的速度取决于从集合中检索的数据集的大小(文档数),而不是集合中的文档数。我检查了100、5000和10000个集合中不同数量的文档,在一次查询中检索了20个文档。我看到的是,当我从一个集合中的100个、5000个和10000个文档移动时,查询的结果时间增加了。为什么会这样?是因为firestore处于测试阶