Android FirebaseUI:使用其他 Google 帐户登录很麻烦



我目前正在查看FirebaseUI的Firebase身份验证产品,并且在使用它时遇到了一些问题。

我第一次使用电子邮件/密码登录,我使用了Gmail地址和自定义密码(没有Google登录(,并且惊讶于它的效果如此之好。

后来,我使用相同的地址从FirebaseUI使用Google Sign-In,并且正如预期的那样,它被"升级"为Google Sign-In。通过"电子邮件/密码"按钮使用该地址登录的进一步尝试会在内部重新路由到 Google 登录,因此初始密码已过时,根本不需要任何密码,就像 Google 登录一样。这也在某种程度上是意料之中的,可能是可取的。

问题来了:现在,每当我退出登录并想使用另一个Gmail地址通过FirebaseUI中的Google登录登录时,我都无法这样做,因为不再要求我选择设备已知的电子邮件地址(最初显示了在手机上注册的所有三个Gmail地址(。它总是使用我使用的第一个地址登录。

如何指示 FirebaseUI 当用户点击 Google 登录时,应始终显示电子邮件地址选择对话框?

这是我正在使用的代码 https://firebase.google.com/docs/auth/android/firebaseui#sign_in

根据文档:

登出

使用 AuthUI 提供的集成,注销用户是一个 多阶段流程:

  1. 用户必须退出 FirebaseAuth 实例。
  2. 必须指示密码智能锁禁用自动登录,以防止自动登录循环阻止 切换帐户的用户。
  3. 如果当前用户使用 Google 或 Facebook 登录,则用户还必须使用关联的 API 注销 身份验证方法。这通常可确保用户不会 使用该帐户时,使用当前帐户自动登录 身份验证方法再次来自身份验证方法选取器, 这也将阻止用户在帐户之间切换 同一提供程序。

为了使此过程更容易,AuthUI提供了一个简单的注销 封装此行为的方法。该方法返回一个任务,其中 在所有必要的注销操作完成后标记为已完成 完成:

AuthUI.getInstance()
.signOut(this)
.addOnCompleteListener(new OnCompleteListener<Void>() {
public void onComplete(@NonNull Task<Void> task) {
// user is now signed out
startActivity(new Intent(MyActivity.this, SignInActivity.class));
finish();
}
});

最新更新