#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. Спас мой день, спасибо!