【发布时间】:2019-02-20 09:49:05
【问题描述】:
我在 firestore 中有一个集合,其中每个文档都包含一组联系人,我想查询那些联系人的电子邮件 ID 为特定值的文档。
我在https://firebase.google.com/docs/reference/android/com/google/firebase/firestore/Query#whereArrayContains(java.lang.String,%20java.lang.Object) 遇到了 whereArrayContains() 过滤器,其描述如下:-
public Query whereArrayContains(字符串字段,对象值)
使用文档必须的附加过滤器创建并返回一个新查询 包含指定的字段,值必须是一个数组,并且 数组必须包含提供的值。一个查询只能有一个 whereArrayContains() 过滤器。
上述方法中的value能否指向对象数组的对象内的字段?
另外,the value must be an array 这个短语有点令人困惑,因为方法参数也称为value。我确信文档意味着 field 应该出现在文档中,并且 它的值 应该是一个数组,并且该数组应该包含 value 参数。
【问题讨论】:
-
an object for an array of objects是什么意思?还请发布您的数据库结构。 -
在每个文档中我都有一组联系人。文档的一个示例是 {groupName:'group1', contacts: [{name: 'Abc', email:'abc@abc.com'}, {name:'Def', email:'def@abc.com '}]}。现在我的目标是获取联系人数组包含电子邮件“abc@abc.com”的所有组。是否可以使用数组包含运算符来做到这一点?
-
它可能有效,但请添加您的数据库结构的屏幕截图以更清楚地查看它。
标签: android firebase google-cloud-firestore