【问题标题】:Check if firebase realtime database Username exists [duplicate]检查firebase实时数据库用户名是否存在[重复]
【发布时间】:2020-06-24 19:42:36
【问题描述】:

我的 Firebase 用户实时数据库结构是这样设置的:

如何检查用户名是否未被占用?我在网上找不到任何有效的东西。 谢谢。

【问题讨论】:

标签: java android firebase firebase-realtime-database


【解决方案1】:

首先,我建议阅读此文档:

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

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

usernames:
   username1,
   username2

【讨论】:

  • 我的建议是制作用户名的副本,该节点的唯一目的是检查是否已经存在。
【解决方案2】:

你可以这样做:

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)
        }
    })
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-27
    • 2019-01-17
    • 1970-01-01
    • 2017-02-17
    • 1970-01-01
    • 2012-01-26
    相关资源
    最近更新 更多