在此页面Query firestore database for document id
我发现此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()
因为我想学习如何使用documentId
作为字段,以便可以在其他查询中使用
.orderBy(firebase.firestore.FieldPath.documentId())
(来自Get data ordered by document Id in Firestore by Javascript?)在Android中
简而言之,Android中的firebase.firestore.FieldPath.documentId()
等于什么?
答案 0 :(得分:2)
您显示的内容应该可以正常工作。从FieldPath.documentId()的API文档中可以看到:
返回一个特殊的标记
FieldPath
,以引用文档的ID。可以在查询中用于按文档ID进行排序或过滤。
因此,您应该可以使用它来过滤文档ID。我能够毫无问题地执行这样的查询。如果对您不起作用,则可能是其他问题-可能您所请求的文档实际上不存在,或者您提供了错误的集合和ID。
请注意,按这样的文档ID进行过滤不适用于收集组查询。为此,您确实需要添加文档ID作为要过滤的字段。
答案 1 :(得分:1)
直接查询文档,而不是查询集合中的文档ID
db.collection('books').document("fK3ddutEpD2qQqRMXNW5").get()
有时候我们会错过那些直率的人!
答案 2 :(得分:1)
如果您不想使用:
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()
现在,您只需要附加一个侦听器就可以了。