如何对照值检查集合中所有文档中的一个字段?
我正在为我的同事设置一个数字提示,以跟踪我们从冰箱中取出的物品。 我们的卡上都有一个4位数字,我们想用来登录,然后存储从公司冰箱中取出的东西(并在月底付款)
我有一个集合,其中包含用户名及其编号。输入代码时,我想检查整个集合是否存在。
My Firebase with Users and ID (nummer)
此帖子之后Check if value exists in firebase DB 我的代码设置如下:
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不是函数”。 试图弄清楚为什么我得到这个错误,我发现了这篇文章:"ref.child is not a function" when adding .orderByChild.StartAt filter 但找不到解决我的初始问题的方法。
亲切的问候。
答案 0 :(得分:1)
您使用的代码来自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中进行查询的更多信息,请访问: https://firebase.google.com/docs/firestore/query-data/queries