如何检查 Firebase 实时数据库 (Dart/Flutter) 中是否存在值?

use*_*684 3 dart firebase firebase-realtime-database flutter

如何检查 Firebase 实时数据库中是否存在某个值?

我正在使用以下命令,但它不起作用:

Future<bool> rootFirebaseIsExists(DatabaseReference databaseReference) async{
  DataSnapshot snapshot = await databaseReference.once();
  if( snapshot == null ){
    print("Item doesn't exist in the db");
  }else{
    print("Item exists in the db");
  }
  return snapshot !=null;
}
print("exists?");
rootFirebaseIsExists(FirebaseDatabase.instance.reference().child("users").child('userid000').child('pushTokens').child("field_to_check"));
Run Code Online (Sandbox Code Playgroud)

问题是,即使节点不存在,快照也不为空,然后函数返回该项目存在于数据库中。

谢谢!

Dou*_*son 5

Once()始终生成一个DataSnapshot对象。您必须通过查看其value属性来检查该快照是否包含任何数据。

  if (snapshot.value == null) {
    print("Item doesn't exist in the db");
  } else {
    print("Item exists in the db");
  }
Run Code Online (Sandbox Code Playgroud)