當用戶使用Facebook登錄到應用程序時,我能夠捕獲並顯示其全名;然而,電子郵件和電話號碼都沒有出現。我已經嘗試了「每個電子郵件地址一個帳戶」以及「每個電子郵件有多個帳戶」。我已使用其電子郵件地址絕對未在Firebase中註冊的帳戶進行測試。我錯過了什麼,以免電子郵件/電話被捕獲?這一切都適用於Google帳戶。Firebase不捕獲來自Facebook的電子郵件/電話
let name = Auth.auth().currentUser?.displayName // works!
let email = Auth.auth().currentUser?.email // nil- why?
let phone = Auth.auth().currentUser?.phoneNumber // nil -why?
登錄過程,這是標準的火力地堡W/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)
}
}
}
}
}
更新基於下面的評論。在檢查userInfo的內容時,以下內容也會產生一個零電子郵件和電話。我明白電話可能就是這樣,但似乎電子郵件應該工作。
let userInfo = Auth.auth().currentUser?.providerData
可能是Facebook用戶不允許訪問電子郵件或電話號碼 –
@ArpitJain我使用我自己的帳戶,它確實允許訪問。 – C6Silver