Ionic firebase电话身份验证中出现“Hostname match not found”(主机名匹配未找到)错误(使用离子)

9nvpjoqh  于 2022-12-08  发布在  Ionic
关注(0)|答案(6)|浏览(265)

我正在尝试将“firebase电话认证”与离子结合起来。
但是,卡在一个问题。
我一直收到**“未找到主机名匹配”**错误,来自

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

登录名.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

--login.html

pdkcd3nj

pdkcd3nj1#

当你在没有ssl认证的域中托管你的应用时,可能会发生此错误。然后你必须在firebase控制台中将你的域列入白名单。
转到Firebase Console -> Authentication -> sign-in-method -> Authorized Domains并添加您的域名。
默认情况下,localhost和任何https://域都被列入白名单。
添加您当前用于测试此应用的任何子域。

lfapxunr

lfapxunr2#

发生此错误是因为当谷歌发送OTP的数字,然后它匹配您的网站URL和您的firebase认证URL是您的域或网站地址匹配,然后它发送给您OTP否则错误发生。
要解决该错误,请转到firebase控制台。
1.去火力控制台。
1.单击“身份验证”。
1.单击“登录方法”。
1.向下滚动并选中“授权域”。
1.添加实现电话身份验证的站点地址。

sq1bmfud

sq1bmfud3#

您应该在此处执行以下操作:

注意:域需要同时添加:与exam.com之间的链接

要解决该错误,请转到firebase控制台。
1.去火力控制台。
1.单击“身份验证”。
1.单击“登录方法”。
1.向下滚动并选中“授权域”。
1.添加实现电话身份验证的站点地址。

fzwojiic

fzwojiic4#

转到Firebase〉选择您的项目〉身份验证〉登录方法〉向下滚动-〉在“授权域”部分下添加您的域。
按照照片说明操作:

fkaflof6

fkaflof65#

对于新的firebase Jmeter 板
转到Firebase〉选择您的项目〉身份验证〉设置,在下,您将找到授权域
输入要添加并保存的域

pgpifvop

pgpifvop6#

您可以在此链接中找到答案:https://stackoverflow.com/a/44091221/6120430
不幸的是,使用Firebase JS库的电话身份验证将无法在Cordova/Ionic中工作。

相关问题