如何保存到Firebase - Swift

时间:2016-08-10 15:55:06

标签: ios swift firebase firebase-realtime-database

可能是我弄错了。

这是我在fb auth:

之后尝试存储用户数据的方法
    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的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

设置值时,您将覆盖该路径上的所有内容。

如果您只想替换某些值,则应使用:

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 ?? ""])