Firebase Auth sendEmailVerification()我遇到错误,但仅适用于Safari浏览器

时间:2019-08-25 18:24:57

标签: javascript safari firebase-authentication

用户注册后,我要求他们验证其电子邮件地址。

它在Firefox和Chrome中正常运行,但在Safari中却无法正常工作,我收到以下消息:

错误:发生了网络错误(例如超时,连接中断或主机不可达)。

并且没有发送确认电子邮件。

我正在采购此版本: firebasejs / 6.4.0 / firebase-auth.js

我一直在寻找类似的问题。 Firebase身份验证错误很多,但我没有找到这个错误。

使用Safari JavaScript调试器,过滤所有异常,我收到以下错误。

有趣的是,在逐步打开调试器之后,将“断点”设置为“所有异常”。会发送电子邮件。,但不是实时运行。

希望这是个线索。

我用此代码发送电子邮件验证。

if (current_user && !current_user.emailVerified) {

    current_user.sendEmailVerification().then(function() {

        const user_message = '<message to user>';
        window.location = '/message?message=' + user_message;

    }).catch((error) => {

        console.log(error);

    } );

}

错误:

第515行rpchandler.js

 try {
          response = JSON.parse(this.getResponseText()) || null;

响应似乎为空。


第183行promise.js异常,抛出值:zi

try {
                // Promise was rejected. Step up one call frame to see why.
                if (reason instanceof Error) {
                  throw reason;

这种情况发生了几次。


第2190行authuser.js

// Cache the invalidation error.
      self.userInvalidatedError_ = /** @type {!fireauth.AuthError} */ (error);

第740行firebase-app.js

Exception with thrown value: TypeError: Argument to String.prototype.startsWith cannot be a RegExp

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我最终滚动了自己的电子邮件验证工作流程。

如果有解决方案,我想恢复到Firebase Auth JavaScript电子邮件验证工作流程。但是现在,我只需要向前走。