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

Posted

技术标签:

【中文标题】如何检查 Firebase 实时数据库(Dart/Flutter)中是不是存在值?【英文标题】:How to check if value exists in Firebase Realtime Database (Dart/Flutter)?如何检查 Firebase 实时数据库(Dart/Flutter)中是否存在值? 【发布时间】:2020-09-25 22:32:18 【问题描述】:

如何检查某个值是否存在于 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"));

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

谢谢!

【问题讨论】:

【参考方案1】:

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

  if (snapshot.value == null) 
    print("Item doesn't exist in the db");
   else 
    print("Item exists in the db");
  

【讨论】:

以上是关于如何检查 Firebase 实时数据库(Dart/Flutter)中是不是存在值?的主要内容,如果未能解决你的问题,请参考以下文章

如何获取当前的 Firebase UID 并将其写入实时数据库?

如何检查firebase实时数据库中是不是没有数据?

Firebase 实时规则如何检查具有 AutoID 的节点是不是包含正确的数据

检查 Firebase 实时数据库中的现有值

检查 Firebase/实时数据库的内容

Flutter 与 firebase 实时数据库移动和网络