如何检查用户名是否已存在于 firebase 实时数据库中

How to check if username already exists in firebase Realtime Database

我正在尝试检查是否已经存在具有相同用户名的用户,这里是示例

这是我的代码,

 DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Users");
 Query checkUser = reference.orderByChild("userName").equalTo(userEnteredUserName);

但没有 uid 它工作完美,但是每当有 uid 无法检查用户名时,有没有办法检查用户名

查询期望 userName 成为用户名节点中的直接字段,并且由于每个人的 userId 都不相同,因此您无法指定嵌套路径。如果您删除用户名节点并重组数据库,如下所示,相同的查询应该可以完美运行:

Users
  | // remove [username] node from here
  |-userId  // userId from Firebase Auth
    |
    |-userName
    |-otherFields

如果你想保留现有的结构,那么你可以只检查是否存在具有给定用户名的节点:

DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Users").child("userName");