2016-05-19 12 views
2

私はちょうど始めたFirebaseの新しいSDK。その中には、Facebookの情報を取得した後Swift - FB AuthのFIRUserInfoのデータをどうやって扱うことができますか?

let facebookLogin = FBSDKLoginManager() 

facebookLogin.logInWithReadPermissions(["email"], fromViewController: self) { (facebookResult: FBSDKLoginManagerLoginResult!, facebookError: NSError!) in 

let credential = FIRFacebookAuthProvider.credentialWithAccessToken(FBSDKAccessToken.currentAccessToken().tokenString) 

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

私はがどのように私は再びそれらのすべてを扱うことができ、問題が発生していますか?:あなたが追加する必要が https://firebase.google.com/docs/reference/ios/firebaseauth/interface_f_i_r_user#properties

答えて

1

今providerDataを取得するためには...で:ここで

var userData = 
           ["id": FIRAuth.auth()?.currentUser?.uid as! AnyObject, 
           // "accessToken": credential as! String, 
           // "provider": user.provider!, 
           "displayName": user?.providerData["displayName"], 
           "email": user.providerData["email"] as! String, 
           "profileImageURL": user.providerData["profileImageURL"] as! String, 
           // "token": user.token as String, 
           "createdAt": utcTimeZoneStr] 
+0

'profile.uid'は常に' user.uid'と同じですか?私は、 '/ users/{uid}/...'のようなノードのリアルタイムデータベースでキーとして使用するのに最適なものを探しています。 – eyeezzi

0

はFirAuth(現在のユーザー)のプロパティです。

if let user = FIRAuth.auth()?.currentUser { 
    for profile in user.providerData { 
    let providerId = profile.providerId 
    let uid = profile.uid; // Provider-specific UID 
    let name = profile.displayName 
    let email = profile.email 
    let photoUrl = profile.photoURL 
    } 
} else { 
    // No user is signed in. 
} 
関連する問題