window.FirebasePlugin.verifyPhoneNumber функция ответа не может его использовать - PullRequest
0 голосов
/ 15 ноября 2018

Я реализовал механизм проверки подлинности телефона firebase для входа пользователя код:

(<any>window).FirebasePlugin.verifyPhoneNumber('+91'+this.phone, 60, function (credential) {
          //alert("sms sent successfully"+ credential.verificationId);
          //this.verificationId = credential.verificationId;
           let modal = this.modalCtrl.create(verificationPage,{verificationId: credential.verificationId});
           modal.present();

        }, error => {
           alert(JSON.stringify(error));
          console.log("error: " + error);
        });
  } 

но значение credential.verificationId не может быть сохранено или отправлено на другую страницу

verify() {
    this.signInCredential = firebase.auth.PhoneAuthProvider.credential(this.verificationId, this.code);
    alert("u"+JSON.stringify(this.signInCredential));
    firebase.auth().signInWithCredential(this.signInCredential).then((info) => { alert("check"+JSON.stringify(info));}, (error) => {
    alert("err"+JSON.stringify(error));})
}

Как устранить вышеуказанную ошибку?

1 Ответ

0 голосов
/ 19 ноября 2018

Вы должны получить параметры из параметров навигации, они не будут работать напрямую.Попробуйте

constructor(public params: Navparams){
 }
 verify() {
   let verificationId = params.get("verificationId");
   this.signInCredential = 
   firebase.auth.PhoneAuthProvider.credential(verificationId, this.code);
   alert("u"+JSON.stringify(this.signInCredential));
   firebase.auth().signInWithCredential(this.signInCredential).then((info) =>
    { 
     alert("check"+JSON.stringify(info));}, (error) => {
     alert("err"+JSON.stringify(error));
    })
 }

Я надеюсь, что это поможет вам.

Для справки проверьте эту статью https://medium.com/@gbrigens/ionic-3-phone-authentication-with-firebase-dbed967e95ef

...