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

Javascript 查询特定数组字段中是否存在值-集合中的所有文档,javascript,google-cloud-firestore,Javascript,Google Cloud Firestore,收集结构: users > name: 'John' phoneNumbers: ['12345', '67891'] 如何检查任何电话号码字段中是否存在给定的电话号码(例如:999999)? 我试过: const usersRef = await firestore().collection('users') const dbResponse = usersRef.where('phoneNumbers', 'array-contains', '999999') 这将返回一

收集结构:

users >
  name: 'John'
  phoneNumbers: ['12345', '67891']
如何检查任何电话号码字段中是否存在给定的电话号码(例如:999999)? 我试过:

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

const dbResponse = usersRef.where('phoneNumbers', 'array-contains', '999999')
这将返回一个以
“\u collectionPath”开头的巨大对象:…


我希望存在一个布尔值,但没有找到任何布尔值。我的查询错了吗?

执行任何查询时,都会返回一个包含与查询匹配的每个文档的。没有其他方法可以查询Firestore,您的代码将需要处理QuerySnapshot对象

在不必实际查看每个文档快照的情况下,找出是否有任何文档与查询匹配的最简单方法是检查QuerySnapshot的属性是否大于0

顺便说一下,您使用的
wait
是不正确的
firestore().collection('users')
立即返回一个无承诺的值。将返回查询对象。并将以一个QuerySnapshot返回一个承诺:

const usersRef = firestore().collection('users')
const querySnapshot = await usersRef
    .where('phoneNumbers', 'array-contains', '999999')
    .get()
if (querySnapshot.size > 0) {
    // do something
}
我建议您研究一下,以了解有关如何执行查询的更多细节