Par*_*dox 5 android firebase google-cloud-firestore
我正在尝试创建一个查询,该查询仅选择引用等于给定引用的文档,使用 Java 进行 Android 开发。它将匹配的文档包含路径“/users/someUser”的引用。我正在像这样创建参考:
DocumentReference ref = mDatabase.document("users/someUser");
Run Code Online (Sandbox Code Playgroud)
我也尝试过:
DocumentReference ref = mDatabase.document("/users/someUser");
Run Code Online (Sandbox Code Playgroud)
然后查询:
Query query = mDatabase.collection("myCollection").whereEqualTo("refField", ref).limit(10);
Run Code Online (Sandbox Code Playgroud)
但是,当我运行查询并task.isSuccessful()在 onComplete 方法中检查 时,它没有通过,即它不起作用,而当我删除 时.whereEqualTo(),它通过并且任务的结果不为空。如何正确使用.whereEqualTo()来检查包含特定参考的所有文档?
与我的查询匹配的文档示例如下:
/myCollection/GDpojS5koac2C7YlIqxS其中包含字段:(
refField: /users/someUser 类型引用的值)
与我的查询不匹配的文档示例如下:
/myCollection/J5ZcVAMYU1nI5XZmh6Bv其中包含字段:(
refField: /users/wrongUser 类型引用的值)
我认为您需要添加一个 get() 方法来运行查询并添加一个 onCompletionListener。
像这样的东西应该有效:
mDatabase.collection("myCollection")
.whereEqualTo("refField", ref)
.limit(10)
.get()
.addOnCompleteListener({task ->
if(task.isSuccessful){
val result = task.result
})
Run Code Online (Sandbox Code Playgroud)
上面的例子是在kotlin中,但我猜在java中它是类似的
| 归档时间: |
|
| 查看次数: |
11983 次 |
| 最近记录: |