如何使用Android上的whereArrayContains()过滤器查询包含Firestore集合中对象数组的文档?

如何使用Android上的whereArrayContains()过滤器查询包含Firestore集合中对象数组的文档?,第1张

概述我在firestore中有一个集合,其中每个文档都包含一系列联系人,我想查询那些联系人的电子邮件ID是特定值的文档.我遇到了WhereArrayContains()在https://firebase.google.com/docseference/android/com/google/firebase/firestore/Query#whereArrayContains(java.lang.String,%20j

我在firestore中有一个集合,其中每个文档都包含一系列联系人,我想查询那些联系人的电子邮件ID是特定值的文档.

我遇到了WhereArrayContains()在https://firebase.google.com/docs/reference/android/com/google/firebase/firestore/Query#whereArrayContains(java.lang.String,%20java.lang.Object)处过滤,具有以下描述: –

public query whereArrayContains (String fIEld, Object value)

Creates and returns a new query with the additional filter that documents must
contain the specifIEd fIEld, the value must be an array, and that the
array must contain the provIDed value.

A query can have only one whereArrayContains() filter.

上述方法中的值是否可以指向对象数组中对象内的字段?

此外,如果方法参数也称为值,则值必须是数组的短语有点混乱.我确信文档意味着该字段应该出现在文档中,其值应该是一个数组,并且该数组应该包含value参数.

解决方法:

您无法在Firestore查询中查询数组中对象的字段.而是包含数组的查询将与数组中的对象进行比较.

the value must be an array

这是指您尝试查询的字段的值.更好的措辞就是这样

Creates and returns a new query with the additional filter that documents must contain the specifIEd fIEld, the value of the specifIEd fIEld must be an array, and that the array must contain the provIDed value.

如果您尝试过滤用户ID或类似内容,请考虑向要查询的对象添加第二个数组,然后将ID作为字符串添加到该数组:

{    "name": "test",    "users": [someUserObject, someOtherUserObject],    "userIDs": ["someID", "someOtherID"]}

然后查询该数组:

someRef.whereArrayContains("userIDs", someID);
总结

以上是内存溢出为你收集整理的如何使用Android上的whereArrayContains()过滤器查询包含Firestore集合中对象数组的文档?全部内容,希望文章能够帮你解决如何使用Android上的whereArrayContains()过滤器查询包含Firestore集合中对象数组的文档?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1101756.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存