密码重置电子邮件中的Firebase传递状态(继续应用链接)

时间:2017-09-01 19:54:43

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

尝试构建密码重置流程,用户收到密码重置电子邮件,重置密码,然后被引导回应用程序。试图避免深层链接,只需要打开应用程序备份。

该应用使用最新的Ionic和Angular版本以及Firebase身份验证。

问题:我可以发送密码重置电子邮件并更改该帐户的密码,但是当我点击firebase提供的继续按钮时,它会在Android和iPhone上中断。该链接也以localhost开头。我不确定我做错了什么,或者我是否配置错误。

当Firebase的文档显示时,也会感到困惑," Android / iOS应用需要在控制台中注册。"

真的没想到了!

我的操作代码设置几乎是默认设置。

该网址已在Firebase的授权域中列入白名单。

var actionCodeSettings = {
 url: 'https://www.myapp.com/?email=' + email,
 iOS: {
  bundleId: 'com.myapp.new'
 },
 android: {
  packageName: 'com.myapp.new',
  installApp: true,
  minimumVersion: '2'
 },
 handleCodeInApp: false
};

这是链接的样子

https://localhost/?link=https://myapp.com/?email%3Demail@example.com&apn=com.myapp.new&amv=2&ibi=com.myapp.new&ifl=https://myapp.com/?email%3Demail@example.com

2 个答案:

答案 0 :(得分:1)

似乎您的FDL域未配置。它被localhost取代,奇怪的是。在这种情况下应该返回错误。你能进入动态链接部分并同意FDL的条款吗?域应该看起来像example.app.goo.gl

答案 1 :(得分:0)

我强烈建议您阅读this article以了解如何使用Ionic正确完成此操作。如果那不是你需要的,请告诉我。

.TS

resetPassword(){
  if (!this.resetPasswordForm.valid){
    console.log(this.resetPasswordForm.value);
  } else {
    this.authProvider.resetPassword(this.resetPasswordForm.value.email)
    .then((user) => {
      let alert = this.alertCtrl.create({
        message: "We just sent you a reset link to your email",
        buttons: [
          {
            text: "Ok",
            role: 'cancel',
            handler: () => { this.navCtrl.pop(); }
          }
        ]
      });
      alert.present();

    }, (error) => {
      var errorMessage: string = error.message;
      let errorAlert = this.alertCtrl.create({
        message: errorMessage,
        buttons: [{ text: "Ok", role: 'cancel' }]
      });
      errorAlert.present();
    });
  }
}