firebase电话身份验证中的“找不到主机名匹配”错误(带离子)

时间:2017-10-05 05:11:27

标签: firebase authentication ionic-framework firebase-authentication

我正在尝试将“firebase phone authentication”与ionic结合起来。

但是,坚持一个问题。

我一直> “找不到主机名匹配”错误

.catch(function (error) { 
  console.log("error! : " +  error); 
});"

of login.ts(下)

import { Component } from '@angular/core';
import { IonicPage, NavController, AlertController } from 'ionic-angular';

import firebase from 'firebase';

@IonicPage()
@Component({
   selector: 'page-login',
   templateUrl: 'login.html',
})

export class LoginPage {
  public recaptchaVerifier:firebase.auth.RecaptchaVerifier;
  constructor(public navCtrl: NavController, public alertCtrl: AlertController) {}

  ionViewDidLoad() {
    this.recaptchaVerifier = new firebase.auth.RecaptchaVerifier('recaptcha-
    container');
  }

  signIn(phoneNumber: number){
    const appVerifier = this.recaptchaVerifier;
    const phoneNumberString = "+" + phoneNumber;

    firebase.auth().signInWithPhoneNumber(phoneNumberString, appVerifier)
      .then( confirmationResult => {

        let prompt = this.alertCtrl.create({
        title: 'Enter the Confirmation code',
        inputs: [{ name: 'confirmationCode', placeholder: 'Confirmation Code' }],
        buttons: [
          { text: 'Cancel',
            handler: data => { console.log('Cancel clicked'); }
          },
          { text: 'Send',
            handler: data => {
               confirmationResult.confirm(data.confirmationCode)
                 .then(function (result) {

                 }).catch(function (error) {

                 });
            }
          }
        ]
     });
     prompt.present();
   })
   .catch(function (error) {
      console.log("error! : " +  error);           //   <------------The place that informs this error.
   });
 }
}

在reCAPTCHA解决后不久发生了这个错误

为什么会这样?

- 初始化Firebase

enter image description here

- 的login.html

enter image description here

5 个答案:

答案 0 :(得分:14)

当您在没有ssl认证的域中托管您的应用时,可能会发生此错误。然后,您必须在firebase控制台中将您的域列入白名单。

转到Firebase Console -> Authentication -> sign-in-method -> Authorized Domains并添加您的域名。

默认情况下,localhost和任何https://域都列入白名单。

答案 1 :(得分:4)

出现此错误的原因是,当Google在号码上发送otp然后它与您的网站网址匹配时,您的firebase身份验证网址就是您的域名或网站地址匹配,那么它会向您发送otp,否则会出现错误。

要解决此错误,请转到firebase控制台。

  1. go firebase console。

  2. 点击身份验证。

  3. 点击登录方法。

  4. 向下滚动并检查授权域。

  5. 添加您实施电话身份验证的网站地址。

答案 2 :(得分:3)

转到Firebase>选择您的项目>身份验证>登录方法>向下滚动->在“授权域”部分下添加您的域。

按照照片说明进行操作:

enter image description here

enter image description here

答案 3 :(得分:1)

您应该在这里关注

注意:域需要同时添加:https://www.exam.com和exam.com

要解决此错误,请转到Firebase控制台。

  1. 转到Firebase控制台。

  2. 单击身份验证。

  3. 单击“登录方法”。

  4. 向下滚动并检查授权域。

  5. 在实现电话认证的位置添加您的站点地址。

答案 4 :(得分:0)

您可以在此链接中找到答案: https://stackoverflow.com/a/44091221/6120430
不幸的是,使用Firebase JS库的手机身份验证无法在Cordova / Ionic中运行...