【问题标题】:Retrieving Data Firebase Swift 3检索数据 Firebase Swift 3
【发布时间】:2018-01-05 10:14:43
【问题描述】:

我正在尝试在登录后从数据库中检索一些字符串,但是我的代码永远不会运行所有内容。如下:

@IBAction func SignIn(_ sender: Any) {
    FIRAuth.auth()?.signIn(withEmail: EmailTextField.text!, password: PasswordTextField.text!, completion: {
        (user, error) in
        if error == nil {
            print("no error")
            if let user = FIRAuth.auth()?.currentUser {
                print("no error")
                //if user.isEmailVerified == true {
                    let ref = FIRDatabase.database().reference()
                    let userID = FIRAuth.auth()?.currentUser?.uid
                    ref.child("users").child(userID!).observeSingleEvent(of: .value, with: { snapshot in
                        print("no error")
                        let snapDict = snapshot.value as? NSDictionary
                        let type = snapDict?["type"] as? String ?? ""
                        print(type)
                })
                //} else {
                    //error email isnt verified
                //}
            }
        } else {
            print(" error")
            if let errCode = FIRAuthErrorCode(rawValue: error!._code) {
                switch errCode {
                case .errorCodeInvalidEmail: break
                    //invalid email
                case .errorCodeUserNotFound: break
                    //user doesnt exist
                case .errorCodeWrongPassword: break
                    //incorrect password
                default: break
                    //error occured
                }
            }
        }
    })
}

print(type) 永远不会被打印,但其他一切都会被打印。我不确定为什么会这样。

【问题讨论】:

    标签: swift firebase swift3 firebase-realtime-database firebase-authentication


    【解决方案1】:

    您的错误不是在检索用户时,而是在您在数据库中设置数据时。

    您可以在您的数据库中看到用户密钥是 Optional("YOUR_KEY") 但它应该是 YOUR_KEY

    您必须在设置用户数据之前打开 userId。

    类似的东西:

    let user = Auth.auth().currentUser
    
    if let user = user {
        let userId = user.uid;
    
        // Use the userId
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-17
      • 1970-01-01
      • 2016-08-12
      相关资源
      最近更新 更多