FirebaseUI-web : no recognised user after account login

标签 firebase firebase-authentication firebaseui

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/

相关文章:

android - 将多级数据从 Android 保存到 Firebase

reactjs - FirebaseUI - 在创建用户之前验证显示名称

android - Firebase 身份验证用户界面 : Is there an UI to let user edit their profile?

ios - Firebase UI电子邮件链接打开应用程序,并通过适当的方法处理,但未登录用户

实时信使移动应用的 Firebase 安全规则

android - 如何使用 Firebase UI 在 recyclerView 中显示时从 Firebase 数据库中的子级引用父级

firebase - Google Cloud Functions - 警告避免嵌套 promise promise /无嵌套

android - 我无法查看 Firebase Crashlytics for android 的崩溃详细信息并卡在 "Build and run your app"

javascript - 如何从 Firebase 获取对象数组?

android - Firebase 电话身份验证在 Activity 恢复时显示异常 : "The sms code has expired. Please re-send the verification code to try again."