Firebase createUserWithEmailAndPassword()返回HTTP POST错误以及错误对象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Firebase createUserWithEmailAndPassword()返回HTTP POST错误以及错误对象相关的知识,希望对你有一定的参考价值。

在使用firebase作为数据库使用Angular5时,我正在尝试从createUserWithEmailAndPassword(email, password)创建一个新用户。

但是当我输入一个已经存在的电子邮件(用于测试)时,该函数将返回HTTP POST错误(不是预期的)与错误对象(预期)。

我尝试使用.catch()捕获错误,但HTTP POST错误仍然使用我的API密钥打印到控制台以及firebase URL。

这是我在AuthService typescript类中的代码:

  signupUser(username: string, password: string) {
    firebase.auth().createUserWithEmailAndPassword(username, password)
      .catch(function(err) {
        const errorCode = err.code;
        const errorMsg = err.message;
        console.log('Error code: ', errorCode);
        console.log('Error Message: ', errorMsg);
        console.log('Error: ', err);
      });
  }

以下是调用上述代码的位置:

  onSignup(form: NgForm) {
    const username: string = form.value.username;
    const password: string = form.value.password;
    try {
      this.authService.signupUser(username, password);
    } catch (err) {
      console.log('try-catch called ');
    }
  }

这是在控制台上显示的内容:

请在这里建议我做错了,因为我不希望HTTP控制台消息打印到控制台显示我的API_KEY。

同样here is a git issue

答案

Firebase身份验证SDK通过HTTP请求与其后端进行通信。您的浏览器的javascript控制台只显示Firebase身份验证服务器发送回客户端的HTTP响应代码。

无法通过API禁止此消息。如果您不想看到此内容,可以尝试在JavaScript控制台中关闭错误日志记录。

另一答案

在调用createUserAndRetrieveDataWithEmailAndPassword()之后,您需要一个if语句(或者如果您想要捕获多个内容的情况)。如果是stmt,请检查返回的错误代码是否与“auth / email-already-in-use”匹配,然后将错误消息重置为您想要的消息并将其显示给您的用户。

    firebase.auth().createUserAndRetrieveDataWithEmailAndPassword(
  email, password).catch(function(error) {
      // Handle Errors here.
      var errorCode = error.code;
      var errorMessage = error.message;
      if (errorCode == 'auth/email-already-in-use') {
        console.log('auth/email-already-in-use.');
      } else {
        console.log(errorMessage);
      }
      console.log(error);
    });

请参阅此方法的文档和返回的错误代码:https://firebase.google.com/docs/reference/js/firebase.auth.Auth#createUserWithEmailAndPassword

另请注意,如果您的目标是隐藏API密钥,任何拥有http过滤器的人都可以在处理错误后观察它,因为对firebase的http调用被触发并返回到您的应用程序!

以上是关于Firebase createUserWithEmailAndPassword()返回HTTP POST错误以及错误对象的主要内容,如果未能解决你的问题,请参考以下文章

无法解决:com.google.firebase:firebase-ml-vision:24.1.3;无法解决:com.google.firebase:firebase-core:20.0.2

没有创建 Firebase 应用“[DEFAULT]” - 在 Flutter 和 Firebase 中调用 Firebase.initializeApp()

如何修复 Firebase 9.0 导入错误? “尝试导入错误:‘firebase/app’不包含默认导出(导入为‘firebase’)。”

Firebase 持久化,清除 Firebase 缓存

Firebase 存储不会下载并添加到 firebase 数据库

将 Firebase 身份验证与 Firebase 数据库连接