【问题标题】: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 实时数据库中是否存在节点?

【问题讨论】:

    标签: firebase-realtime-database dart flutter


    【解决方案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;
        }
        

        【讨论】:

        • 请不要只发布代码作为答案,还要解释您的代码的作用以及它如何解决问题的问题。带有解释的答案通常更有帮助、质量更好,并且更有可能吸引投票。
        猜你喜欢
        • 2020-09-25
        • 2021-07-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-08
        • 1970-01-01
        相关资源
        最近更新 更多