firebase中是否有一种方法可以检查DB中是否存在值? Firebase具有.exists()方法,但是根据文档,它仅检查 key 。
我有以下结构:
{
"users": {
"-KKUmYgLYREWCnWeHCvO": {
"fName": "Peter",
"ID": "U1EL9SSUQ",
"username": "peter01"
},
"-KKUmYgLYREWCnWeHCvO": {
"fName": "John",
"ID": "U1EL5623",
"username": "john.doe"
}
}
}
我想检查ID为
U1EL5623
的ID是否存在。 最佳答案
exists()
方法是firet查询返回的snapshot
对象的一部分。因此,请记住,您将无法避免检索数据以验证数据是否存在。
ref.child("users").orderByChild("ID").equalTo("U1EL5623").once("value",snapshot => {
if (snapshot.exists()){
const userData = snapshot.val();
console.log("exists!", userData);
}
});
观察结果:
如果您处于不同的场景中,而您拥有对象可能所在的确切引用路径,则无需添加
orderByChild
和equalTo
。在这种情况下,您可以直接获取对象的路径,因此不需要从Firebase进行任何搜索处理。另外,如果您知道对象必须具有的属性之一,则可以使用作为摘要,使其仅检索此属性,而不检索整个对象。结果将是更快的检查。 //every user must have an email
firebase.database().ref(`users/${userId}/email`).once("value", snapshot => {
if (snapshot.exists()){
console.log("exists!");
const email = snapshot.val();
}
});
关于javascript - 检查Firebase数据库中是否存在值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37910008/