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

Android FiRecovery如何在各种查询中使用文档id作为字段

高寒
2023-03-14

在本页上查询文档ID的fiRecovery数据库

我发现这个javascript示例在where子句中使用documentId

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

Android的等价物是什么?我尝试使用

whereEqualTo(firebase.firestore.FieldPath.documentId(), 'fK3ddutEpD2qQqRMXNW5');

但没用

编辑:我不想使用

db.collection('books').document("fK3ddutEpD2qQqRMXNW5").get()

因为我想学习如何将docentId用作字段,以便我可以在其他查询中使用它,例如

.orderBy(firebase.firestore.FieldPath.documentId())

(来自通过Javascript在FiRecovery中获取按文档ID排序的数据?)在Android中

简而言之,什么是firebase的等价物。firestore。FieldPath。Android中的documentId()?

共有3个答案

戚阳曜
2023-03-14

直接查询文档,而不是在集合中查询文档id

db.collection('books').document("fK3ddutEpD2qQqRMXNW5").get()

有时我们会错过那些直截了当的!

章睿
2023-03-14

如果您不想使用:

db.collection('books').document("fK3ddutEpD2qQqRMXNW5").get()

您可以选择将文档ID添加为文档的属性,并使用以下查询:

db.collection("books").whereEqualTo("documentId", "fK3ddutEpD2qQqRMXNW5").get()

根据Doug Stevenson的评论,事实证明:

db.collection("books").whereEqualTo(FieldPath.documentId(), "fK3ddutEpD2qQqRMXNW5").get()

实际有效,返回与以下情况相同的结果:

db.collection('books').document("fK3ddutEpD2qQqRMXNW5").get()

或:

db.collection("books").whereEqualTo("documentId", "fK3ddutEpD2qQqRMXNW5").get()

现在,您只需附加一个侦听器,就完成了。

嵇昱
2023-03-14

您显示的内容应该确实有效。从FieldPath.documentId()的API留档中可以看出:

返回引用文档ID的特殊哨兵FieldPath。它可用于查询中按文档ID进行排序或过滤。

所以您应该能够使用它来过滤文档ID。我能够毫无问题地执行这样的查询。如果它不适合您,那么还有其他问题——也许您要求的文档实际上并不存在,或者您提供了错误的集合和ID。

请注意,这样按文档ID进行过滤对于集合组查询不起作用。为此,您确实需要将文档ID添加为要筛选的字段。

 类似资料:
  • 我试图根据文档ID查询文档,但我无法使用 AFS是AngularFiRecovery类型 我不知道上面的代码是否正确。 我尝试了在中提到的解决方案:通过将ref.id替换为firebase来查询firestore数据库中的文档id。firestore。FieldPath。documentId(),但我收到一个错误: “Firebase”是指UMD全局,但当前文件是一个模块。 帮助我检索数据。

  • 问题内容: 如果我有一个mongo文档ID作为字符串,如何查询它作为_id? 它会正常工作吗?还是需要先将其转换为bson对象? 问题答案: 您的意思是您拥有ObjectId的24个十六进制数字字符串吗? 假设这就是您的意思,大多数驱动程序都有一种方法来获取字符串并将其转换为ObjectId。在JavaScript中: 更新 为对节点本地驱动程序更有用(来自https://github.com/c

  • 我一直在使用jmeter对mongodb进行加载测试,接下来我将使用一个具有这些数据的不同的db 我已经在这里保存了已保存的mongoHost,mongoPort,databaseName,collectionName jmeter变量 这个连接测试通过了,但我无法从数据库中获取、读取任何数据并通过测试,这是代码 错误 谢谢你

  • 问题内容: 我正在尝试通过搜索“ _id”键在MongoDB中查找文档。我的文件看起来像这样- 我正在尝试将此文档搜索为- 但我得到以下错误- BasicDBObject的append方法支持(字符串键,值),如果我将“ _id”作为String传递给此方法,则不会匹配任何文档。 所以我的问题是如何传递“ _id”? 问题答案: 通过使用as作为查询来解决

  • 我正在寻找一种通过文档id而不是字段进行查询的方法。 可能是这样的: 在这种情况下,searchInput是一个不完整的documentId。 我在Stackoverflow上看到了一个解决方案,但它不适用于Flatter:https://stackoverflow.com/a/52252264/8539070 要记住的另一件事是,我正在尝试显示集合中与id的某些部分匹配的所有文档的列表。 谢谢你

  • 我有一个网站,用户可以做课程。当用户开始一个课程时,我希望将课程标识符添加到FireStore中的用户文档中。在网站上,用户有自己的个人资料页面。其中一个区段是正在进行的课程区段,用户可以在该区段中查看他们当前注册的课程。 我可以将课程文档键添加到用户文档上的一个字段中,一旦他们开始课程,该字段是一个字符串数组,包含另一个集合中文档的键。 GetRegrendCareersList=async()