реагировать родной firebase телефон аутентификации не работает после генерации подписанного APK - PullRequest
0 голосов
/ 14 мая 2018

Я строю реагирующее нативное приложение с помощью 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)

    }`

1 Ответ

0 голосов
/ 25 мая 2018

Если вы еще не поняли, у меня точно такая же проблема.

  1. Открыть Android Studio
  2. Нажмите Панель задач Gradle справа
  3. Двойной щелчок signatureReport в [имя вашего приложения]> Задачи> android> signatureReport
  4. Обратите внимание на вариант: Relase SHA-1, который генерируется. Он должен быть одним из первых, выданных заданием.
  5. Добавьте этот SHA-1 в список SHA-1 на вашей консоли Firebase . Теперь у вас должно быть 2, один для отладки и один для выпуска.
  6. Загрузите свежий google-services.json и поместите его в каталог android / app .
  7. Перестройте релиз приложения.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...