我正在使用Firebase实时数据库。我正在尝试使用查询查找一个孩子,然后找到该孩子,我想查看孩子内部是否存在带有值的特定键。我正在尝试进行身份验证过程。我正在查看用户名和密码是否正确。它不是a:键:“用户名”,值:“ password”情况,而是:
子代:“用户名”
|
->密钥:密码,值:“ password”
尝试查找带有查询的子项,并在其子项中查看密码键和值是否存在。我知道有很多与此类似的问题(看了两个小时),但没有一个适合我的情况。
数据库:
->admin
-> Teacher
-> Password: "teacherPassword"
-> Period 1
-> Students
-> Will Smith
-> Current Novel: "Fly"
-> Password: "password5"
-> Period 2
*Same as Period 1, different students*
-> Period 3
*Same as Period 1 , different students*
我尝试过:
func CheckUser(Username: String, Password: String, completionHandler: @escaping ((_ correct : Bool)) -> Void)) {
self.ref.queryOrdered(byChild: "\(Username)/Password").queryEqual(tovalue: "\(Password)").observe(.value) { (snapshot) in
if snapshot.exists(){
print("Found")
completionHandler(true)
}else{
print("Not found")
completionHandler(false)
}
}
}
我正在尝试在整个数据库中搜索Username(这是Will Smith),并且由于所有学生子级都有一个Key密码,因此我将其添加到query(“。queryOrdered(byChild:”(Username) /密码”)”)。然后,我看是否有一个等于Password(即password5)的值。那是我的理由,但是我是Firebase的新手,所以我真的不知道。控制台始终打印出“未找到”。解决方案是查询的组合,但我需要帮助才能找到该解决方案。我不想使用Firebase的内置身份验证。
感谢您提供的任何帮助。