【发布时间】:2020-06-24 19:42:36
【问题描述】:
【问题讨论】:
-
您可以执行查询以查找子节点具有特定值的节点。 firebase.google.com/docs/database/android/…
-
你能举个例子吗?我很困惑。
标签: java android firebase firebase-realtime-database
【问题讨论】:
标签: java android firebase firebase-realtime-database
首先,我建议阅读此文档:
现在,您的业务规则是否需要检查Users 节点中是否已经存在用户名,您应该创建另一个名为usernames 的节点并将它们保存为字符串列表,这样查询变得更加简单。我说的是这样的:
Users:
foo1:...
foo2:...
usernames:
username1,
username2
【讨论】:
你可以这样做:
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)
}
})
}
【讨论】: