javascript - Firebase UI signInSuccessWithAuthResult 异步
问题描述
我尝试在signInSuccessWithAuthResult
Firebase UI 中使用异步代码来执行条件重定向,但它总是分别失败,我的异步代码没有运行并且我的重定向被忽略。
你能在中使用异步代码signInSuccessWithAuthResult
吗?还是我做错了什么?
const uiConfig = {
signInFlow: 'redirect',
signInSuccessUrl: appUrl,
signInOptions: signInOptions,
tosUrl: appUrl + '/terms',
privacyPolicyUrl: appUrl + '/privacy',
credentialHelper: firebaseui.auth.CredentialHelper.GOOGLE_YOLO,
autoUpgradeAnonymousUsers: true,
callbacks: {
signInSuccessWithAuthResult: async (_authResult, _redirectUrl) => {
await this.navigateRedirect();
return false;
},
signInFailure: this.onSignInFailure
}
};
private async navigateRedirect() {
const redirectUrl: string = await get<string>('deckdeckgo_redirect');
window.location.assign(redirectUrl);
}
我使用firebaseui v4.0.0。和上面get
用到的idb-keyval
。
解决方案
signInSuccessWithAuthResult
回调需要一个同步函数。更改为以下内容:
callbacks: {
signInSuccessWithAuthResult: (_authResult, _redirectUrl) => {
// This will run asynchronously. When it resolves, it will complete the
// redirect.
this.navigateRedirect();
// In the meantime, disable FirebaseUI redirect.
return false;
},
},
推荐阅读
- python - 需要使用外键限制关系
- entity-framework - Entity Framework 会为没有主键的表创建模型吗?
- jms - JMS MessageListener 可以启动 XA 事务吗?
- r - 突出显示 2 个特定点 ggplot2
- angular - 如何在选定的聊天列表项(Angular)上添加活动类?
- java - Java收集到列表但指定预定义的前两个元素顺序
- android - adding gradient colour to button background in android
- reactjs - 如何通过反应获取多个项目中输入的值
- angular - Angular 5: How do I access image files outside the app or assets folder?
- java - 如何将 Spark 客户端 submitApplication 转换为 Yarn Rest API?