检查Firebase实时数据库用户名是否存在

时间:2020-03-12 17:53:27

标签: java android firebase firebase-realtime-database

我的用户Firebase实时数据库结构设置如下: Structure

如何检查用户名尚未被使用?我在网上找不到任何有效的方法。 谢谢。

2 个答案:

答案 0 :(得分:0)

首先,我建议阅读以下文档:

现在,您的业务规则是否需要检查Users节点中是否已经存在用户名,您应该创建另一个名为usernames的节点并将其保存为字符串列表,这样,查询变得更加简单。我说的是:

Users:
   foo1:...
   foo2:...

usernames:
   username1,
   username2

答案 1 :(得分:0)

您可以这样做:

fun checkUsername(callback: (result: Boolean?) -> Unit){
    val database = Firebase.database.reference
    val reference = database.child("Users")
    reference.addListenerForSingleValueEvent(object : ValueEventListener {
        override fun onDataChange(dataSnapshot: DataSnapshot) {
            for (postSnapshot in dataSnapshot.children) {
                val post = postSnapshot.getValue<User>()
                userList.add(post)
            }

           callback(userList.any { x -> x.username == "check_username" })

        }

        override fun onCancelled(databaseError: DatabaseError) {
            callback(null)
        }
    })
}
相关问题