Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 未安装Ionic firebase电话验证插件_Android_Angular_Typescript_Ionic Framework - Fatal编程技术网

Android 未安装Ionic firebase电话验证插件

Android 未安装Ionic firebase电话验证插件,android,angular,typescript,ionic-framework,Android,Angular,Typescript,Ionic Framework,我在爱奥尼亚使用以下插件进行电话验证:,我使用的国家代码是55,我的运营商号码是15。就我调试而言,我的代码没有任何问题。每当我在我的真实设备上运行它时,我的控制台就会被记录registerPhone err plugin\u not\u installed,我不知道它指的是哪个插件 这是密码 import {Component, ViewChild, OnInit} from '@angular/core'; import {IonicPage, NavController, Aler

我在爱奥尼亚使用以下插件进行电话验证:,我使用的国家代码是55,我的运营商号码是15。就我调试而言,我的代码没有任何问题。每当我在我的真实设备上运行它时,我的控制台就会被记录
registerPhone err plugin\u not\u installed
,我不知道它指的是哪个插件

这是密码

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

/**
 * 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 = '+5515' + this.phoneNumber.value;
    console.log('registerPhone phone', phone);
    this.fire.verifyPhoneNumber(phone, 120)
      .then((res) => {
        const {verificationId} = res;
        console.log('registerPhone verificationId', verificationId);
        alert(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 {
    alert("Você se logou com sucesso!");
    this.navCtrl.setRoot('HomePage');
  }
}
和html:

<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="9"></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>

登录
+55
去

您必须使用Cordova?您是如何安装Firebase插件的?是否可以通过您的应用程序访问

您是否运行了此命令(如文档所示):

你也试过运行“爱奥尼亚科尔多瓦准备”?我们能再了解一下你是如何安装插件的吗?
ionic cordova plugin add cordova-plugin-firebase