如何解决如何从Firestore获取数组值?
我将以下所示的数据结构存储在Cloud Firestore中。我已将公司记录保存在Firestore数据库中,我想检查我的域是否存在于公司的域数组中,如果是,那么我希望所有公司数据作为响应,但我不知道如何使用Firestore来实现。
在这里,我已经标记了域。让我解释更多, 例如,如果我的域名是“ abcinfo.in”,那么我想检查它是否已经存在于任何partner_company域中,并且在这里与该partner_company链接,因此它应该返回我partner_company的所有数据。就是这样。
我尝试使用下面的代码,但是当有单个值时它会有所帮助,但是在这里我需要从数组中检查
var domaindata = db.collection('partner_company').where('company_domain','==',_user.domain);
domaindata.get().then(function (querySnapshot) {
querySnapshot.forEach(function (doc) {
console.log(doc.id,' => ',doc.data());
});
});
解决方法
Firebase具有用于数组过滤的简洁功能: array-contains 和 array-contains-any 。它们可以用作查询运算符。
使用array-contains筛选必须匹配的值的数组。 以下查询将解析您的测试文档:
db.collection('partner_company').where('company_domain','array-contains',['abcinfo.in','newtest.com'];
array-consides-any在另一侧的过滤器中至少包含一个匹配值。
db.collection('partner_company').where('company_domain','array-contains-any',['definfo.in','newtest.com'];
详细了解Firebase here中的数组成员身份
,您可以执行以下操作:
var domaindata = db.collection('partner_company').where('company_domain',_user.domain);
这将检查数组company_domain
是否包含传递的域。
检查以下内容:
https://firebase.google.com/docs/firestore/query-data/queries#array_membership
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。