ユーザがFacebookを使用してアプリケーションにログインすると、そのユーザのフルネームをキャプチャして表示できます。しかし、電子メールも電話番号も渡っていません。私は "電子メールアドレスごとに1つのアカウント"と "電子メールごとに複数のアカウント"の両方を試しました。私は電子メールアドレスがFirebaseに登録されていないアカウントでテストしました。電子メール/電話がキャプチャされていないなど、何が欠けていますか?これはすべてGoogleアカウントで動作します。下記のコメントに基づいて更新するにはFirebaseがFacebookからの電子メール/電話をキャプチャしていない
func loginButton(_ loginButton: FBSDKLoginButton!, didCompleteWith result: FBSDKLoginManagerLoginResult!, error: Error!)
{
if let error = error
{
print(error.localizedDescription)
}
else
{
if FBSDKAccessToken.current() != nil
{
let credential = FacebookAuthProvider.credential(withAccessToken: FBSDKAccessToken.current().tokenString)
Auth.auth().signIn(with: credential) { (user, error) in
if let error = error
{
print (error.localizedDescription)
}
}
}
}
}
:
let name = Auth.auth().currentUser?.displayName // works!
let email = Auth.auth().currentUser?.email // nil- why?
let phone = Auth.auth().currentUser?.phoneNumber // nil -why?
のFacebook/wの標準Firebaseでログインプロセスは、次のようになります。また、userInfoの内容を調べるときには、以下のようにメールと電話が無制限になります。私は電話がちょうどその方法かもしれないことを理解しますが、電子メールは動作するはずでした。
let userInfo = Auth.auth().currentUser?.providerData
Facebookのユーザーがメールまたは電話番号へのアクセスを許可していない可能性があります –
@ArpitJain私自身のアカウントを使用しており、アクセスを許可しています。 – C6Silver