可能是我弄错了。
这是我尝试在fb身份验证后存储用户数据的方式:

    func loginButton(loginButton: FBSDKLoginButton!, didCompleteWithResult result: FBSDKLoginManagerLoginResult!, error: NSError?) {
    print("sds")
    print(result)
    if let error = error {
        print(error.localizedDescription)
        return
    }
    let credential = FIRFacebookAuthProvider.credentialWithAccessToken(FBSDKAccessToken.currentAccessToken().tokenString)

    FIRAuth.auth()?.signInWithCredential(credential) { (user, error) in

        if let email = user?.email
        {
           self.ref.child("users").child(user!.uid).setValue(["email": email])
        }
        if let photoURL = user?.photoURL?.absoluteString
        {
            self.ref.child("users").child(user!.uid).setValue(["photoURL": photoURL])
        }
    }}

当我在控制台中查看数据库时,得到的只是photoURL,看起来电子邮件是在删除/重写之后立即创建的。
将数据保存到firebase的正确方法是什么?

最佳答案

设置值时,将覆盖该路径上的所有内容。
如果只想替换某些值,则应使用:

self.ref.child("users").child(user!.uid).child("photoURL").setValue(photoURL)

或替换/创建整个用户对象
self.ref.child("users").child(user!.uid).setValue(["email": email, "photoURL": user?.photoURL?.absoluteString ?? ""])

关于ios - 如何保存到Firebase-Swift,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38878273/

10-12 05:56