如何使用 Flutter/Dart 检查 Firebase 数据库中是不是存在节点
Posted
技术标签:
【中文标题】如何使用 Flutter/Dart 检查 Firebase 数据库中是不是存在节点【英文标题】:How to check if node exists in Firebase Database with Flutter/Dart如何使用 Flutter/Dart 检查 Firebase 数据库中是否存在节点 【发布时间】:2019-05-10 05:35:52 【问题描述】:对于 javascript 和其他语言,我已经多次看到这个问题的回答。在那里,它总是归结为获取快照并使用称为exists()
的方法进行检查。但是在 Dart/Flutter 中,没有这样的方法。这是我现在所拥有的:
devicesRef.child(deviceId).once().then((DataSnapshot data)
print(data.key);
print(data.value);
);
我想检查一个名为deviceId
的节点是否已经存在。
那么如何使用 Dart/Flutter 检查 Firebase 实时数据库中是否存在节点?
【问题讨论】:
【参考方案1】:我猜,因为实时数据库中没有 null 子值这样的东西,所以您可以简单地检查 data.value
是否为 null。
【讨论】:
【参考方案2】:将您的DatabaseReference
传递给此方法,如果存在则返回true
Future<bool> rootFirebaseIsExists(DatabaseReference databaseReference) async
DataSnapshot snapshot = await databaseReference.once();
return snapshot !=null;
【讨论】:
【参考方案3】:Future<bool> isUserRegistered(String idToken) async
DataSnapshot dataSnapshot = await databaseReference.child('app').child('users').child(idToken).once();
return dataSnapshot.value!=null;
【讨论】:
请不要只发布代码作为答案,还要解释您的代码的作用以及它如何解决问题的问题。带有解释的答案通常更有帮助、质量更好,并且更有可能吸引投票。以上是关于如何使用 Flutter/Dart 检查 Firebase 数据库中是不是存在节点的主要内容,如果未能解决你的问题,请参考以下文章
你如何在flutter.dart中连续检查互联网访问,而不是连接[重复]
Flutter/Dart-如何使用 Duration 包显示飞蛾