Firebase 查询找不到电子邮件地址?
Firebase query can't find email address?
我的 Firebase 数据库中有一个名为 "users" 的密钥,其中包含电子邮件和姓名的密钥。我正在尝试创建一个简单的查询来根据电子邮件地址查找用户,但该查询未返回任何结果。
let rootRef = FIRDatabase.database().reference()
let email = emailTextField.text
rootRef.child("users").queryEqualToValue(email, childKey: "users").observeEventType(.Value, withBlock: { snapshot in
if snapshot.exists() {
print("user exists")
} else if !snapshot.exists(){
print("user doesn't exist")
}
})
我的控制台总是打印 "user doesn't exist",即使电子邮件文本字段与我的数据库中显示的相同。
有什么问题吗?
谢谢!!
试试这个:
let usersRef = self.rootRef.childByAppendingPath("users")
let email = emailTextField.text
usersRef.queryOrderedByChild("email").queryEqualToValue(email)
.observeEventType(.Value, withBlock: { snapshot in
if snapshot.exists() {
print("user exists")
} else {
print("user doesn't exist")
}
})
不过您需要小心...。Value 将 return 电子邮件地址与您要查找的地址相同的所有节点。一般来说,这将是一个,但是,如果有 5 个,.Value 将包含所有 5 个,因此迭代快照会更安全。
for child in snapshot.children {
let email = child.value["whatever key:value you want"] as! String
}
我的 Firebase 数据库中有一个名为 "users" 的密钥,其中包含电子邮件和姓名的密钥。我正在尝试创建一个简单的查询来根据电子邮件地址查找用户,但该查询未返回任何结果。
let rootRef = FIRDatabase.database().reference()
let email = emailTextField.text
rootRef.child("users").queryEqualToValue(email, childKey: "users").observeEventType(.Value, withBlock: { snapshot in
if snapshot.exists() {
print("user exists")
} else if !snapshot.exists(){
print("user doesn't exist")
}
})
我的控制台总是打印 "user doesn't exist",即使电子邮件文本字段与我的数据库中显示的相同。
有什么问题吗?
谢谢!!
试试这个:
let usersRef = self.rootRef.childByAppendingPath("users")
let email = emailTextField.text
usersRef.queryOrderedByChild("email").queryEqualToValue(email)
.observeEventType(.Value, withBlock: { snapshot in
if snapshot.exists() {
print("user exists")
} else {
print("user doesn't exist")
}
})
不过您需要小心...。Value 将 return 电子邮件地址与您要查找的地址相同的所有节点。一般来说,这将是一个,但是,如果有 5 个,.Value 将包含所有 5 个,因此迭代快照会更安全。
for child in snapshot.children {
let email = child.value["whatever key:value you want"] as! String
}