Firebase authListener 显示帐户选择器,但在我第一次尝试登录时无法识别任何用户。
然后,尝试再次登录时,FirebaseUI 会跳过帐户选择器并立即重定向回来,之后 Firebase authListener 确实会识别用户。对于 Google 帐户选择器,“使用电子邮件登录”并选择相同的 Google 地址也是如此。
这个问题使得我的所有用户都需要按登录按钮两次。一次用于帐户选择器,第二次用于使用现已识别的用户实际登录。
这是我的构建:
Firebase 初始化
firebase.initializeApp(config.firebase)
firebase.auth().onAuthStateChanged(user => {
if (user) {
return console.log('found this user! ', user)
}
console.log('no user found during authListener!')
})
firebase.auth().getRedirectResult()
.then(result => { console.log(result.user) })
.catch(error => { console.log(error) })
这是安装登录页面时发生的情况
let ui = firebaseui.auth.AuthUI.getInstance()
if (!ui) {
ui = new firebaseui.auth.AuthUI(firebase.auth())
}
ui.start('#firebaseui-auth-container', uiConfig)
这是我的配置:
uiConfig = {
signInSuccessUrl: '/',
signInOptions: [
{
provider: firebase.auth.EmailAuthProvider.PROVIDER_ID,
requireDisplayName: false
},
firebase.auth.GoogleAuthProvider.PROVIDER_ID,
],
tosUrl: 'localhost'
}
版本:
"firebase": "^5.0.4",
"firebaseui": "^3.0.0",
PS:
我的网站是 SPA
最佳答案
我通过将以下内容添加到配置对象来“解决”这个问题:
credentialHelper: firebaseui.auth.CredentialHelper.NONE
这会完全关闭帐户选择器,而是提示用户输入电子邮件地址,与丑陋且令人困惑的帐户选择器相比,恕我直言,这会带来更好的用户体验。
关于FirebaseUI-web : no recognised user after account login,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50733796/