firebase中是否有方法可以检查DB中是否存在值?Firebase有方法。exists(),但根据文档,它只检查键。
我有以下结构:
{
"users": {
"-KKUmYgLYREWCnWeHCvO": {
"fName": "Peter",
"ID": "U1EL9SSUQ",
"username": "peter01"
},
"-KKUmYgLYREWCnWeHCvO": {
"fName": "John",
"ID": "U1EL5623",
"username": "john.doe"
}
}
}
我想检查是否存在值为U1EL5623的ID。
我还不能发表评论,所以我发布了一个答案:
要添加到建议的答案中,如果您想查询是否存在任何用户,可以尝试通过添加来提高性能。限制第一(1)或。limitToLast(1)。这样,您可以将检索到的数据限制到最低限度:
//Check if any users exist
firebase.database().ref(`users`).limitToFirst(1).once("value", snapshot => {
if (snapshot.exists()){
console.log("exists!");
// TODO: Handle that users do exist
return true;
}
// TODO: Handle that users do not exist
});
资料来源:https://firebase.google.com/docs/reference/js/firebase.database.Query#limitToFirst
如果您想检查Firebase中是否存在电子邮件,这是一个类似的解决方案
firebase.app().database().ref("shops").orderByChild("email")
.equalTo(user.email).once("value", snapshot => {
const userData = snapshot.val();
// Check if it is a SHOP.
if (userData) {
console.log("Shop logged in!");
this.setState({
isAdminLoggedIn: false,
isUserLoggedIn: false,
isShopLoggedIn: true,
isNoneLoggedIn: false
});
// Check if it is a USER.
} else {
console.log("User logged in");
this.setState({
isAdminLoggedIn: false,
isUserLoggedIn: true,
isShopLoggedIn: false,
isNoneLoggedIn: false
});
}
});
axy()
方法是Firebase查询返回的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();
}
});
问题内容: 如何检查扫描仪中写入的值是否存在? 问题答案: 只需使用ArrayList.contains(desiredElement)即可。例如,如果您要从示例中查找conta1帐户,则可以使用以下方法: 编辑: 请注意,为了使其正常工作,您将需要适当地重写equals()和hashCode()方法。如果使用的是Eclipse IDE,则可以通过首先打开对象的源文件并选择来生成这些方法。
问题内容: 我有一个嵌入了数据库的桌面应用程序。当我执行程序时,我需要检查特定的表是否存在,如果不存在则创建它。 给我的数据库一个名为conn的Connection对象,我该如何检查呢? 问题答案: 您可以使用可用的元数据: 有关更多详细信息,请参见此处。还要注意JavaDoc中的注意事项。
问题内容: 我正在尝试检查$ _POST是否存在,如果存在,则在另一个字符串中打印它,如果不存在,则根本不打印。 像这样的东西: 任何帮助将是巨大的! 问题答案:
我需要检查一列是否存在,如果不存在,请添加它。根据我的研究,sqlite似乎不支持是否应该使用语句和case语句。 以下是我目前掌握的情况: 但我得到了一个错误:接近“ALTER”:语法错误。 有什么想法吗?
问题内容: 我有一个名为“ bob”的数组,其中包含值。 我如何才能知道在没有迭代的情况下名为bob的数组中是否存在“傻”值? 问题答案: 您可以使用方法。为此,您需要将数组转换为列表。您可以使用以下方法:
问题内容: 我有下一个JSON: 知道JSON对象中是否存在“ dog”值的最佳方法是什么? 谢谢。 解决方案1 解决方案2(JQuery) 解决方案3(使用some()方法) 问题答案: JSON变量引用具有一个称为“名称”的属性的对象数组。我不知道最好的方法,但这就是我的工作吗?