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

#ios #react-native #firebase-authentication #sign-in-with-apple

#iOS #react-native #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 => {

});

}
  

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

Ответ №1:

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

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

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

Комментарии:

1. Собираюсь ли я сохранять электронное письмо локально при первом входе в систему, чтобы я мог получить электронное письмо?

2. не уверен, как вы можете очистить кэш на iOS. Если они удалят приложение app, в котором используется Apple id, из своих учетных записей, я предполагаю, что вы получите его снова, потому что тогда это будет «новый» пользователь.

3. Спас мой день, спасибо!