首页 文章

Firebase查询无法找到电子邮件地址?

提问于
浏览
0

我的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")

        }
    })

即使电子邮件文本字段与我的数据库中显示的相同,我的控制台也始终打印“用户不存在” .

关于什么是错的任何想法?

谢谢!!

1 回答

  • 2

    试试这个:

    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将返回所有节点,其电子邮件地址等于您要查找的地址 . 一般来说,这将是一个,但是,如果有5, . Value将包含所有5,因此迭代快照会更安全 .

    for child in snapshot.children {
       let email = child.value["whatever key:value you want"] as! String
    }
    

相关问题