检查Firebase Android中是否存在ID

sta*_*man 3 java database android firebase

我正在编写一个Android应用程序,我想检查是否存在密钥以避免重复值.我一直在调查,但是当我只想检查一个ID是否存在时,看起来我可以添加的只是听众.

以这个问题为例,我想知道是否-JlvccKbEAyoLL9dc9_v存在.我怎样才能做到这一点?

提前致谢.

Fra*_*len 13

这个方法总是类似于我在这个关于JavaScript的答案中写的:测试Firebase中是否存在数据

ref.child("-JlvccKbEAyoLL9dc9_v").addListenerForSingleValueEvent(new ValueEventListener() {
  @Override
  public void onDataChange(DataSnapshot snapshot) {
    if (snapshot.exists()) {
      // TODO: handle the case where the data already exists
    }
    else {
      // TODO: handle the case where the data does not yet exist
    }
  }

  @Override
  public void onCancelled(FirebaseError firebaseError) { }
});
Run Code Online (Sandbox Code Playgroud)

但请记住,存在Firebase中的推送ID以防止必须执行此类检查.当多个客户端生成推送ID时,它们在统计上保证是唯一的.因此,他们中的任何一个都无法创建与另一个相同的密钥.

任何需要检查项目是否已存在的情况都可能存在竞争条件:如果两个客户端几乎同时执行此检查,则它们都不会找到值.