【发布时间】:2020-10-21 09:53:34
【问题描述】:
我已经搜索了几个小时的文档,但我仍然看不到他们展示这样一个用例的示例。
我有下面的代码,但它什么也没返回。
val obj = mapOf(
"type" to "Admin"
)
Firebase.firestore
.collection("Caves")
.whereEqualTo("author", obj)
.get()
.addOnSuccessListener {
Debug.log("success: %s", it.documents.size) // it.size is also 0 where it should be 3
}
示例数据结构如下所示:
"Caves"
[
{
author: {
type: "Admin",
id: 123,
displayName: "Test"
},
...
},
...
]
在 C# 中,这很简单:caves.Where(e => e.Author.Type == Type.Admin)
有没有办法对对象使用whereEqualTo()?
我的数据结构是否错误?
编辑:
【问题讨论】:
-
您能分享一下您的 Firestore 结构的屏幕截图吗?我问这个问题是因为我对你上面的表示感到困惑,因为你在这个结构中添加了它:
[{{}}],这意味着在Caves集合中,你想要获取的作者对象是另一个对象内部的对象数组,那不正确是吗?如果可能,请分享屏幕截图,这样更容易理解。 -
@RafaelLemos 是的。我将一个对象放在一个集合中。我做错了吗?它应该仅限于键/值对吗?顺便说一句,我添加了屏幕截图。
-
我认为它存在于一个数组中。道格的回答是对的;)
标签: android firebase kotlin google-cloud-firestore