可能是我弄错了。
这是我尝试在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/