我已经针对JavaScript和其他语言多次回答了这个问题。在那里,它总是会下降以获取快照并使用称为exists()
的方法进行检查。但是在Dart / Flutter中,没有这种方法。这是我现在拥有的:
devicesRef.child(deviceId).once().then((DataSnapshot data) {
print(data.key);
print(data.value);
});
我想检查一个名为deviceId
的节点是否已经存在。
那么如何使用Dart / Flutter检查Firebase实时数据库中是否存在节点?
答案 0 :(得分:2)
我想,由于在实时数据库中没有空子值之类的东西,您可以简单地检查data.value
是否为空。
答案 1 :(得分:1)
将您的DatabaseReference
传递给此方法,如果存在则返回true
Future<bool> rootFirebaseIsExists(DatabaseReference databaseReference) async{
DataSnapshot snapshot = await databaseReference.once();
return snapshot !=null;
}
答案 2 :(得分:0)
Future<bool> isUserRegistered(String idToken) async{
DataSnapshot dataSnapshot = await databaseReference.child('app').child('users').child(idToken).once();
return dataSnapshot.value!=null;
}