Я строю реагирующее нативное приложение с помощью firebase phone auth
после того, как я сгенерировал подписанный apk в android
cd android && ./gradlew buildRelease
Я проверил на своем телефоне сгенерированный APK, и когда я вхожу в телефон, ничего не происходит, и он возвращает мою ошибку
Ошибка: это приложение не авторизовано для использования Firebase аутентификации. пожалуйста, убедитесь, что правильное имя пакета и sha-1 настроены в консоли Firebase.
НО
когда я запускаю приложение без apk, с
реакция-нативный запуск-android
и аутентификация работает хорошо, и я регистрирую пользователя.
confirmPhone = async (phoneNumber) => {
const phoneWithAreaCode = phoneNumber.replace(/^0+/,'+972');
return new Promise((res, rej) => {
firebase.auth().verifyPhoneNumber(phoneWithAreaCode)
.on('state_changed', async (phoneAuthSnapshot) => {
console.log('phone-->',phoneAuthSnapshot)
switch (phoneAuthSnapshot.state) {
case firebase.auth.PhoneAuthState.AUTO_VERIFIED:
await this.confirmCode(phoneAuthSnapshot.verificationId, phoneAuthSnapshot.code, phoneAuthSnapshot)
res(phoneAuthSnapshot)
break
case firebase.auth.PhoneAuthState.CODE_SENT:
UserStore.setVerificationId(phoneAuthSnapshot.verificationId)
res(phoneAuthSnapshot)
break
case firebase.auth.PhoneAuthState.AUTO_VERIFY_TIMEOUT:
UserStore.setVerificationId(phoneAuthSnapshot.verificationId)
UserStore.setErrorCodeAuthentication('SMS code has expired')
res(phoneAuthSnapshot)
case firebase.auth.PhoneAuthState.ERROR:
// console.log(phoneAuthSnapshot)
// if(NavigationStore.CurrentRoute == 'Login'){
// UserStore.setErrorCodeAuthentication('Please enter valid phone number')
// }else
// UserStore.setErrorCodeAuthentication('Pin code invalid')
rej(phoneAuthSnapshot)
break
}
})
})
}
confirmCode = async (verificationId, code, phoneAuthSnapshot) => {
try{
const credential = await firebase.auth.PhoneAuthProvider.credential(UserStore.verificationId, code)
UserStore.setCodeInput(code)
UserStore.setUserCredentials(credential)
AppStore.setAlreadyRegister(true)
await this.authenticate(credential)
return credential
} catch(e){
throw new Error(e)
}
}
authenticate = async (credential) => {
await firebase.auth().signInAndRetrieveDataWithCredential(credential)
}`