Firebase Android:使用Google登录后如何切换用户账号
解决Firebase Auth Google登录自动登录无切换账号选项的问题
问题出在Google身份验证提供商的默认行为:如果用户之前登录过,会自动静默登录,跳过账号选择界面。只需在Google登录配置中添加强制显示账号选择的参数即可解决。
修改代码中的Google登录配置
在构建GoogleBuilder时,调用setPrompt("select_account")方法,强制每次登录都弹出账号选择界面:
val signInIntent = AuthUI.getInstance() .createSignInIntentBuilder() .setAvailableProviders(arrayListOf( AuthUI.IdpConfig.EmailBuilder().build(), // 添加setPrompt参数,强制显示账号选择 AuthUI.IdpConfig.GoogleBuilder().setPrompt("select_account").build() )) .build() signInLauncher.launch(signInIntent)
说明
setPrompt("select_account")会告诉Google登录服务必须显示账号选择界面,即使用户设备上已有保存的登录会话,也不会自动登录上次的账号。- 如果需要让用户重新确认授权(比如权限变更),可以将prompt值改为
"consent",但"select_account"更贴合切换账号的需求。 - 登出操作无需额外修改,
auth.signOut()已经能清除Firebase本地会话,配合上述配置就能实现正常的账号切换流程。
内容的提问来源于stack exchange,提问作者Peter
相关产品推荐
相关产品推荐

