【问题标题】:Ionic firebase send email verification离子火力基地发送电子邮件验证
【发布时间】:2018-06-25 22:08:37
【问题描述】:

我正在尝试在用户注册时向他们发送电子邮件验证。用户被添加到 firebase,但未发送电子邮件。我将错误记录到控制台,它说

无法读取未定义的属性“sendEmailVerification”

import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular';
import { User } from "../../models/user";
import { AngularFireAuth } from "angularfire2/auth";
import * as firebase from 'firebase';


@IonicPage()
@Component({
  selector: 'page-register',
  templateUrl: 'register.html',
})
export class RegisterPage {

  user = {} as User

  constructor(private afAuth: AngularFireAuth,
    public navCtrl: NavController, public navParams: NavParams) {
  }

  async register(user: User) {
     try {
       const result = await this.afAuth.auth.createUserWithEmailAndPassword(user.email, user.password)
       .then(res => {
         var auth = firebase.auth();
         this.auth.sendEmailVerification(user.email)
         this.navCtrl.setRoot('LoginPage');
       }
     }
     catch (e) {
       console.log(e);
     }
   }

}

【问题讨论】:

    标签: angular typescript firebase ionic-framework firebase-authentication


    【解决方案1】:

    首先你不能使用它来引用变量,因为它是在同一个函数中本地声明的。

    尝试删除 this 关键字,或者您可以选择实现电子邮件验证,如下所示:

    在注册后的 then 函数中:

     let user = firebase.auth().currentUser;
     user.sendEmailVerification();
     this.navCtrl.setRoot('LoginPage');
    

    【讨论】:

      【解决方案2】:

      看起来您正在使用this.auth.sendEmailVerification,但您实际上从未分配过this.auth

      尝试将this.auth.sendEmailVerification 更改为auth.sendEmailVerification,因为您可以从之前的行或this.afAuth.auth.sendEmailVerification 中获得该变量。

      【讨论】:

        猜你喜欢
        • 2018-03-27
        • 1970-01-01
        • 2014-09-18
        • 2012-07-14
        • 1970-01-01
        • 2019-06-24
        • 2018-11-21
        • 2019-03-04
        • 1970-01-01
        相关资源
        最近更新 更多