是否可以再次查询Firestore中的对象数组中的对象字段?

时间:2018-09-20 05:51:16

标签: java google-cloud-firestore firebase-admin

在Firestore中具有一些如下所示的数据:

Array of objects

我的查询:

db().collection("contactLists").whereArrayContains("contacts.id", "+911122334455");

不返回任何匹配项。在Firestore中可以进行这样的查询吗? @DougStevenson的answer建议几个月前不可能。还是这样吗?我是否可能错误地指定了查询?

我唯一想到的替代方法是将电话号码存储为平面数组(即List s的数组/ String)以使其可搜索。

1 个答案:

答案 0 :(得分:2)

对于数组查询,您必须调出本身就是数组类型的文档字段的名称。您无法调出数组中包含的对象字段的名称。

您还需要搜索整个数组元素的确切内容,而不仅仅是存储在数组中的对象的单个属性。

如果您需要按数组中的某些字符串搜索文档,则该数组仅需要包含要搜索的字符串。您现在所拥有的将无法使用。