为了账号安全,请及时绑定邮箱和手机立即绑定

如何从 Firestore 获取数组值?

如何从 Firestore 获取数组值?

慕桂英4014372 2023-04-20 16:35:24
我将下图所示的数据结构存储在 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());    });  });所以请建议我更好的方法来获得我想要的数据。谢谢。
查看完整描述

2 回答

?
holdtom

TA贡献1805条经验 获得超10个赞

Firebase 带有一个简洁的数组过滤功能:array-containsarray-contains-any。它们可以用作查询运算符。

使用 array-contains 过滤数组以获得必须完美匹配的值。以下查询将解析您的测试文档:

db.collection('partner_company').where('company_domain', 'array-contains', ['abcinfo.in', 'newtest.com'];

array-contains-any 在另一侧过滤至少一个匹配值。

db.collection('partner_company').where('company_domain', 'array-contains-any', ['definfo.in', 'newtest.com'];


查看完整回答
反对 回复 2023-04-20
?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

您可以执行以下操作:

var domaindata = db.collection('partner_company').where('company_domain', 'array-contains', _user.domain);

这将检查数组是否company_domain包含传递的域。


查看完整回答
反对 回复 2023-04-20
  • 2 回答
  • 0 关注
  • 119 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信