javascript - Firebase: "Pending promise was never set"登录时弹出窗口

标签 javascript firebase firebase-authentication

我在我的应用程序中使用 firebase auth 并且正在实现其他提供程序,在这种情况下是 microsoft。电子邮件/密码工作正常(应用程序已初始化等)但尝试 signInWithPopup , 如下所示:

import * as firebaseAuth from 'firebase/auth';

export function signupWithMicrosoft(): Promise<firebaseAuth.UserCredential> {
  const auth = firebaseAuth.getAuth();
  const provider = new firebaseAuth.OAuthProvider('microsoft.com');
  return firebaseAuth.signInWithPopup(auth, provider).catch(Promise.reject);
}
失败与以下不一致:
Uncaught (in promise) Error: INTERNAL ASSERTION FAILED: Pending promise was never set
    debugFail assert.ts:256
    debugAssert assert.ts:271
    reject abstract_popup_redirect_operation.ts:135
    onAuthEvent abstract_popup_redirect_operation.ts:104
    sendToConsumer auth_event_manager.ts:97
    onEvent auth_event_manager.ts:68
    onEvent auth_event_manager.ts:65
    initAndGetManager popup_redirect.ts:133
该错误有时会出现而不是其他错误,但肯定不止于此。我在 Azure 中对重定向 URI 进行了三次检查(最初我遇到了尾部斜杠错误)。我没有尝试过的一件事是重定向登录,而不是弹出登录。
尝试观察 firebase 内部发生的事情让我相信这是某种初始化问题,AuthEventConsumer在使用设置的事件时没有得到它解决的 promise ,但是我一直在努力寻找如何正确初始化它。实际的身份验证请求通过并成功,但是一旦它尝试解决该 promise (不存在),它就会提示。

最佳答案

编辑:它最终要求我切换到重定向而不是弹出。
事实证明,这是 auth/popup-closed-by-user 的结果。 Firefox 中发生的事情,只是我记录得很差。修复是直接调用函数(从用户输入同步),而不是从异步函数。抱歉,问题中没有明确列出这些因素。

关于javascript - Firebase: "Pending promise was never set"登录时弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70659748/

相关文章:

javascript - 映射两个数组并在单个表中显示数据?

javascript - 为什么 "sticky"javascript 不能在 Firefox/IE 中运行?

firebase - Firebase中基于多个where子句的查询

firebase - collection$.valueChanges() 只返回更改还是整个集合?

firebase - 仅当用户存在于 firebase 中时,Flutter google 才能登录?

android - Firebase - Android - fetchProvidersForEmail - 为什么所有调用都是异步的?

android - 登录页面状态失败的断言问题

javascript - 是否可以在 ES6 类的静态方法中访问变量和函数?

javascript - FirebaseError browserErrorMessage : "Failed to register a ServiceWorker: ServiceWorker script evaluation failed"

Firebase 推送 key 作为 Firebase 存储文件名?