방금 Firebase App에 Facebook 로그인 기능을 통합했습니다. FIRDatabase에서 사용자에게 몇 가지 추가 정보를 추가하고 싶습니다. 그 이유는 내 firebase 데이터베이스 식별자로 uid를 가진 하위 사용자를 추가합니다.Firebase에 페이스 북 사용자의 uid를 저장하는 방법은 무엇입니까?
사용자가 페이스 북없이 "일반"가입 기능을 사용하면 모든 것이 버터처럼 부드럽게 작동합니다. 그러나 Facebook 등록 양식에 동일한 정보를 추가 했으므로 선택 값을 언 래핑하는 동안 예기치 않게 nil을 신속하게 발견 할 때 발생하는 치명적인 오류가 발생합니다.
나는 그것이 내가 FIR 데이터베이스에 추가 할 사용자 이름이어야한다는 것을 알고 있습니다. 그러나 나는 다른 곳에서 uid를 얻는 방법을 아직 알지 못했습니다.
var FirebaseUId: String!
func showEmailAddress() {
let accessToken = FBSDKAccessToken.current()
guard let accessTokenString = accessToken?.tokenString else {return}
let credentials = FIRFacebookAuthProvider.credential(withAccessToken: accessTokenString)
FIRAuth.auth()?.signIn(with: credentials, completion: { (user, error) in
if error != nil {
print("Something went wrong with our FB user:", error ?? "")
return
}
print("succesfullex logged in with our user: ", user ?? "")
self.FirebaseUId = user?.uid
})
FBSDKGraphRequest(graphPath: "/me", parameters: ["fields": "id, name, email"]).start { (connection, result, err) in
if err != nil {
return
}
print(result ?? "")
let data = result as! [String : AnyObject]
let email = data["email"] as? String
let username = data["name"] as? String
let userInfo: [String : Any] = ["uid" : self.FirebaseUId! ,
"username" : username!,
"Email" : email!,
"Passwort" : " ",
"Geschlecht" : " ",
"urltoImage" : " ",
"FußballPreferenz" : " ",
"BasketballPreferenz" : " ",
"FußballBesitz" : " ",
"BasketballBesitz" : " ",
"LeibchenBesitz" : " "]
var ref: FIRDatabaseReference!
ref = FIRDatabase.database().reference()
ref.child("users").child(self.FirebaseUId).setValue(userInfo)
}
}