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

查询特定数组字段中是否存在值 - 集合中的所有文档

查询特定数组字段中是否存在值 - 集合中的所有文档

Qyouu 2022-09-29 17:47:00
集合结构:users >  name: 'John'  phoneNumbers: ['12345', '67891']如何检查任何电话号码字段中是否存在给定的电话号码(例如:999999)?我试过:const usersRef = await firestore().collection('users')const dbResponse = usersRef.where('phoneNumbers', 'array-contains', '999999')这给我带来了一个巨大的物体,从"_collectionPath": ...我本来以为会有一个布尔值存在,但没有找到任何东西。我的查询有误吗?
查看完整描述

1 回答

?
开心每一天1111

TA贡献1836条经验 获得超13个赞

当您执行任何查询时,您将获得一个包含与查询匹配的每个文档的查询快照。没有其他方法可以查询火库,您的代码将需要处理该查询快照对象。

要找出是否有任何文档与查询匹配,而无需实际查看每个文档快照,最简单的方法是简单地检查 QuerySnapshot 的 size 属性是否大于 0。

顺便说一句,您的使用不正确。 立即返回集合引用,但不做任何承诺。其中() 将返回查询对象。并且 get() 将返回一个带有查询快照的承诺:awaitfirestore().collection('users')

const usersRef = firestore().collection('users')

const querySnapshot = await usersRef

    .where('phoneNumbers', 'array-contains', '999999')

    .get()

if (querySnapshot.size > 0) {

    // do something

}

我建议研究文档,以获取有关如何执行查询的更多详细信息。


查看完整回答
反对 回复 2022-09-29
  • 1 回答
  • 0 关注
  • 88 浏览
慕课专栏
更多

添加回答

举报

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