我想检查数据库中是否存在特定数字,以便它会获取与数字对应的密码,否则它将返回数字在 Flutter 的数据库中不存在。
var dbRef = FirebaseDatabase.instance.reference().child("NewUsers");
dbRef.equalTo(numberController.text).once().then((DataSnapshot snapshot){
if(snapshot.value.isNotEmpty){
var dbRef = FirebaseDatabase.instance.reference();
dbRef.child(numberController.text).once().then((DataSnapshot snapshot){
snapshot.value.forEach((key,values) {
print(values["Password"]);
});
});
}
else{
print("pleasesignup first");
}
});
在此之后,我收到错误
Unhandled Exception: NoSuchMethodError: The getter 'isNotEmpty' was called on null
最佳答案
尝试以下操作:
var dbRef = FirebaseDatabase.instance.reference().child("newUsers");
dbRef.orderByKey().equalTo(numberController.text).once().then((DataSnapshot snapshot){
if(snapshot.value.isNotEmpty){
var ref = FirebaseDatabase.instance.reference("newUsers");
ref.child(numberController.text).once().then((DataSnapshot snapshot){
print(snapshot.value);
snapshot.value.forEach((key,values) {
print(values["Password"]);
});
});
}
});
首先添加对
newUsers
的引用并使用查询 orderByKey().equalTo(numberController.text)
然后通过执行 snapshot.value.isNotEmpty
它将检查数据库中是否存在 key ,如果确实检索到 password
.
关于firebase - 在 Flutter 中从 Firebase 实时数据库中获取特定数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60966679/