неизвестный номер проверки ошибки Экземпляр ошибки: com.google.firebase.FirebaseException - PullRequest
0 голосов
/ 03 ноября 2018

Я пытаюсь использовать плагин для аутентификации телефона на ionic, который я нашел по этой ссылке: https://github.com/sajTempler/IonicFirebasePhoneAuth, по умолчанию код страны был жестко закодирован на 47, поэтому я изменил его на 55, что является моим CC, однако я не уверен, что с плагином что-то не так, или я просто неправильно набрал номер, потому что каждый раз, когда я пытаюсь зарегистрировать свой номер телефона, на странице проверки Chrome появляется следующая ошибка

registerPhone err неизвестный номер проверки ошибки Экземпляр ошибки: com.google.firebase.FirebaseException

Теперь вот код

Login.ts

   import {Component, ViewChild, OnInit} from '@angular/core';
    import {IonicPage, NavController, AlertController} from 'ionic-angular';
    import {AngularFireAuth} from '@angular/fire/auth';
    import {Firebase} from '@ionic-native/firebase';
    import * as firebase from 'firebase/app';

    /**
     * Generated class for the LoginPage page.
     *
     * See https://ionicframework.com/docs/components/#navigation for more info on
     * Ionic pages and navigation.
     */

    @IonicPage()
    @Component({
      selector: 'page-login',
      templateUrl: 'login.html',
    })
    export class LoginPage implements OnInit {

      @ViewChild('phoneNumber') phoneNumber;

      constructor(
        private navCtrl: NavController,
        private fireAuth: AngularFireAuth,
        private alertCtrl: AlertController,
        private fire: Firebase,
      ) {
      }

      ngOnInit() {
        console.log('LoginPage ngOnInit');
        this.fireAuth.authState.subscribe(auth => {
          if (!auth) {
            return;
          }

          auth.getIdToken()
            .then((token: string) => {
              console.log('LoginPage getIdToken token', token);
              if (token) {
                this.doLogin();
              }
            });
        });
      }

      // tslint:disable-next-line
      private registerPhone(): void {
        console.log('registerPhone');
        const phone = '+55' + this.phoneNumber.value;
        console.log('registerPhone phone', phone);
        this.fire.verifyPhoneNumber(phone, 120)
          .then((res) => {
            const {verificationId} = res;
            console.log('registerPhone verificationId', verificationId);
            this.showPrompt(verificationId);
          })
          .catch(err => {
            console.log('registerPhone err', err);
          })
      }

      private async verifyCode(code: string, verificationId: string) {
        try {
          const credential = await firebase.auth.PhoneAuthProvider.credential(verificationId, code);
          await firebase.auth().signInWithCredential(credential)
            .then(() => {
              this.doLogin();
            })
            .catch(err => {
              console.error('LoginPage verifyCode signInWithCredential err', err);
            })
        } catch (err) {
          console.error('LoginPage verifyCode err', err);
        }
      }

      private showPrompt(verificationId: string) {
        let promptCode = this.alertCtrl.create({
          title: 'Verify',
          message: 'Type code that was received via SMS',
          inputs: [
            {
              name: 'code',
              placeholder: 'Code'
            },
          ],
          buttons: [
            {
              text: 'Cancel',
              handler: data => {
                return;
              }
            },
            {
              text: 'Verify',
              handler: data => {
                this.verifyCode(data.code, verificationId);
              }
            }
          ]
        });
        promptCode.present();
      }

      private doLogin(): void {
        this.navCtrl.setRoot('HomePage');
      }
    }

login.html

<!--
  Generated template for the LoginPage page.

  See http://ionicframework.com/docs/components/#navigation for more info on
  Ionic pages and navigation.
-->
<ion-header>

  <ion-navbar>
    <ion-title>Login</ion-title>
  </ion-navbar>

</ion-header>


<ion-content padding>

  <div class="login-verify" id="recaptcha-container"></div>

  <ion-list>
    <ion-item>
      <ion-label>+55</ion-label>
      <ion-input #phoneNumber type="tel" maxlength="11"></ion-input>
    </ion-item>
  </ion-list>

</ion-content>

<ion-footer class="login-footer">
  <button full ion-button class="login-btn" (click)="registerPhone()">Go</button>
</ion-footer>

Вот вывод: https://imgur.com/a/OjTdZVB

Каждый раз, когда я пытаюсь, я делаю: + номер оператора CC, номер телефона, который в сумме составляет 11 номеров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...