可能是我弄错了。
这是我在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的正确方法是什么?
答案 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 ?? ""])