Firebase: как получить электронную почту при входе в систему с помощью Apple на реальном устройстве?

Я реализую вход с помощью Apple, это мой код при нажатии кнопки Apple

  onAppleButtonPress = async () => {
// performs login request
const appleAuthRequestResponse = await appleAuth.performRequest({
  requestedOperation: AppleAuthRequestOperation.LOGIN,
  requestedScopes: [
    AppleAuthRequestScope.EMAIL,
    AppleAuthRequestScope.FULL_NAME,
  ],
});

// Ensure Apple returned a user identityToken
if (!appleAuthRequestResponse.identityToken) {
  console.log('no token');
  throw 'Apple Sign-In failed - no identify token returned';
}

// Create a Firebase credential from the response
const {identityToken, nonce} = appleAuthRequestResponse;
const appleCredential = firebaseAuth.AppleAuthProvider.credential(
  identityToken,
  nonce,
);


//I WANT TO GET THE EMAIL HERE TO USE CHECK IT FROM FIREBASE IF EMAIL ALREADY EXISTS BY THIS CODE

firebaseAuth()
        .fetchSignInMethodsForEmail(appleAuthRequestResponse.email)
        .then(providers => {

});

}

Он работает на симуляторе, но на реальном устройстве адрес электронной почты нулевой. Кто может помочь?


person Noe Fabellon    schedule 13.08.2020    source источник


Ответы (1)


Apple возвращает полное имя и адрес электронной почты только при первом входе в систему, при последующем входе в систему возвращается значение null, поэтому вам необходимо сохранить эти данные.

Чтобы получить их снова, перейдите в настройки вашего устройства; Settings > Apple ID, iCloud, iTunes & App Store > Password & Security > Apps Using Your Apple ID, коснитесь своего приложения и коснитесь «Прекратить использование Apple ID». Теперь вы можете войти в систему снова и получите полное имя и адрес электронной почты.

Источник здесь.

person Steven Bell    schedule 13.08.2020
comment
Собираюсь ли я сохранить электронную почту локально при первом входе в систему, чтобы получить ее? - person Noe Fabellon; 14.08.2020
comment
не уверен, как можно очистить кеш на iOS. Если они удалят приложение app от использования идентификатора Apple из своих настроек, я предполагаю, что вы получите его снова, потому что тогда это будет «новый» пользователь. - person Steven Bell; 14.08.2020