我构建了一个身份验证网关,用户可以通过 Google 帐户登录。我的设备上现在有 2 个 Google 帐户,但每当我尝试登录时,它都会通过我首先登录的默认帐户进行登录。
最初,我让用户通过
mAuth.signOut()
注销,但这只是通过 Firebase 注销用户,我想为 Google 帐户执行此操作。
当您使用 Google 实施 Firebase 身份验证时,您需要执行两项操作。第一个是在 Google 中对用户进行身份验证,一旦成功完成此操作,您就可以获取凭据,然后在 Firebase 中进行身份验证。所以这是一个两步操作。另一方面,当您注销用户时,您必须执行相同的操作,先从 Google 注销用户,然后再从 Firebase 注销。如果您使用 OneTap 通过 Google 进行 Firebase 身份验证,则要从 Google 中注销用户,您必须使用 SignInClient#signOut() 并从 Firebase 中注销,FirebaseAuth#signOut()。
如果您没有从 Google 中注销用户,当您尝试重新验证用户身份时,该用户将已经登录到 Google,这就是您出现此行为的原因。所以你必须从 bith 退出。