Firebase Ionic - 返回错误

ksa_coder

我有一个条件,我正在检查用户名是否被占用。如果没有,那么我检查电子邮件是否已注册(如果没有,则继续创建帐户)。我正在将 firebase 函数与业务逻辑分开......但我无法弄清楚如何将错误从 createUserWithEmailAndPassword() 返回到页面类以进一步处理。

if(usernameTaken) {


            }else{
                /*Username is available - Check email taken or not (if not, register)*/
                      var error = self.firebaseProvider.registerUser(self.email,self.password,self.username, self.name);

                if(error.code !== ""){
                    if(error.code == "auth/email-already-in-use"){
                        let alert = self.alertCtrl.create({
                          title: 'Email Exists',
                          subTitle: 'The email you entered is already registered.',
                          buttons: ['Retry']
                        });
                        alert.present();
                      }else if(error.code == 'auth/weak-password') {
                        let alert = self.alertCtrl.create({
                          title: 'Validation Error',
                          subTitle: 'The password entered is weak and should be 6 characters.',
                          buttons: ['Retry']
                        });
                        alert.present();
                      }
                }
            }

这是 firebase.ts 中的代码:

registerUser(email: string, password: string, username: string, name: string): (any) {
      var self = this;  

      this.fbAuth.auth.createUserWithEmailAndPassword(email, password).then(function() {
        var user = firebase.auth().currentUser;
        self.createUserRecord(username, email, name);    
      }).catch(function(error) {
        //Handle error
        return error;
      });

  }

返回的错误为空(未定义),因此没有按预期工作。请帮忙。

草图

您的代码需要进行一些重构,您的父调用期待一个承诺,因此var error将通过一个thenable对象,它不会有err.code.

同样error在您的registerUser类中返回一个作为成功响应的可能难以调试,因此最好在父调用上设置捕获句柄。

if (usernameTaken) {

} else 
  /*Username is available - Check email taken or not (if not, register)*/
  self.firebaseProvider.registerUser(self.email,self.password,self.username, self.name)
    .then(resp => {
      // Do Something
    })
    .catch(err => {
      if (error.code !== "") {
        if(error.code == "auth/email-already-in-use"){
          let alert = self.alertCtrl.create({
            title: 'Email Exists',
            subTitle: 'The email you entered is already registered.',
            buttons: ['Retry']
          });

          alert.present();
        } else if(error.code == 'auth/weak-password') {
          let alert = self.alertCtrl.create({
            title: 'Validation Error',
            subTitle: 'The password entered is weak and should be 6 characters.',
            buttons: ['Retry']
          });

          alert.present();
        }
      }
    });
}

您需要returnthis.fbAuth.auth.createUserWithEmailAndPassword调用添加一个

registerUser(email: string, password: string, username: string, name: string): Promise<any> {
  var self = this;  

  return this.fbAuth.auth.createUserWithEmailAndPassword(email, password)
    .then(function() {
      var user = firebase.auth().currentUser;
      return self.createUserRecord(username, email, name);    
    });
}

现在,如果函数抛出一个错误就出现在父类的处理,你可以看到之间的差异createUserRecorderror

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Ionic / Firebase - 错误拼接不是函数(reorderArray)

来自分类Dev

Ionic 3 Firebase 登录因错误而停止

来自分类Dev

Firebase + Ionic3错误:disallowed_useragent

来自分类Dev

运行时错误:Object(...) 不是函数 Ionic/Firebase/Angular

来自分类Dev

Angular Firebase $ createUser函数返回错误

来自分类Dev

Firebase Cloud Functions返回内部错误

来自分类Dev

Firebase时间戳返回错误的日期-Javascript

来自分类Dev

Firebase云函数返回错误429

来自分类Dev

Firebase dataRef.transaction()返回错误的快照

来自分类Dev

Angular Firebase $ createUser函数返回错误

来自分类Dev

Firebase 云函数返回错误的值

来自分类Dev

在 firebase 中出现 ionic-v1 构建 **不支持** 失败的错误?

来自分类Dev

为ionic 2添加cordova插件返回ETIMEDOUT错误

来自分类Dev

使用Ionic登录Firebase Facebook

来自分类Dev

与 Firebase 和 Ionic 的通用链接

来自分类Dev

Ionic Firebase Angular 异步验证

来自分类Dev

为什么我的Firebase查询返回错误的顺序?

来自分类Dev

为什么此Firebase功能承诺未返回正确的错误?

来自分类Dev

找不到为什么Firebase.getFloat返回错误值

来自分类Dev

Firebase函数从外部API调用返回错误文本

来自分类Dev

Firebase错误每个then()应该返回一个值

来自分类Dev

Firebase:嵌套onSnapshot返回“未定义不是函数”错误

来自分类Dev

Firebase 云函数突然返回@grpc 模块错误

来自分类Dev

奇怪的IONIC错误消息

来自分类Dev

Ionic Cordova 平台错误

来自分类Dev

Firebase Ionic 5增量和减量

来自分类Dev

带有Firebase的Ionic 2 Google登录

来自分类Dev

流星,Ionic 2,Firebase之间的选择堆栈

来自分类Dev

Ionic:无法遍历所有 firebase 记录

Related 相关文章

热门标签

归档