Javascript 如何检查Cloud Firestore集合中的所有文档中是否存在字段值?

Javascript 如何检查Cloud Firestore集合中的所有文档中是否存在字段值?,javascript,firebase,google-cloud-firestore,Javascript,Firebase,Google Cloud Firestore,如何根据值检查集合中所有文档中的一个字段 我正在为我的同事建立一个数字计分系统来跟踪我们从冰箱里拿出的东西。 我们的卡上都有一个4位数的号码,我们想用来登录,然后把从公司冰箱里拿出来的东西储存起来(并在月底付清) 我有一个包含用户名及其编号的集合。当我输入代码时,我想检查整个集合是否存在该条目 在这篇文章之后 我的代码设置如下: ref.child("nutzer").orderByChild("nummer").equalTo("1337").once("value",snapshot =&

如何根据值检查集合中所有文档中的一个字段

我正在为我的同事建立一个数字计分系统来跟踪我们从冰箱里拿出的东西。 我们的卡上都有一个4位数的号码,我们想用来登录,然后把从公司冰箱里拿出来的东西储存起来(并在月底付清)

我有一个包含用户名及其编号的集合。当我输入代码时,我想检查整个集合是否存在该条目

在这篇文章之后 我的代码设置如下:

ref.child("nutzer").orderByChild("nummer").equalTo("1337").once("value",snapshot => {
     if (snapshot.exists()){
       const userData = snapshot.val();
       console.log("exists!", userData);
     }
     else{
     console.log("does not exists!");
 });  
运行代码时,我得到一个错误“ref.child不是函数”。 试图找出我为什么会出现此错误,我发现了以下帖子: 但我无法找到解决我最初问题的办法


问候。

您使用的代码来自firebase实时数据库,但您的数据存储在firebase firestore中(firebase提供两种不同类型的数据库)

Firestore最近添加了集合组查询,可以跨多个集合文档进行搜索,例如

var nummers = db.collectionGroup('nutzer').where('nummer', '==', '1337');
nummers.get().then(function (querySnapshot) {
    querySnapshot.forEach(function (doc) {
        console.log(doc.id, ' => ', doc.data());
    });
});
要测试数据是否存在,只需在处理之前确定初始查询快照的日期,并检查
.empty
属性。例如

nummers.get().then(function (querySnapshot) {
   return !querySnapshot.empty
})
有关在firestore中查询的更多信息,请访问:

您似乎混淆了firebase实时数据库命令和firebaes firestore命令。firestore托管了两种不同类型的数据库从截图中我可以看到你的数据库是firestore,这里有关于查询的文档:看起来我把这两个数据库都整理好了。Chrisclarke发布了一段很好的代码,对我帮助很大。再次感谢你,非常感谢。你的代码可以正常工作,并完成我需要它完成的任务。你在使用firebase auth吗?如果是这样,您可以订阅登录更改事件以了解是否成功,而不是等待任意时间。你到底在说什么清单?登录ID列表?