使用Firebase Google用户身份验证更改用户
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Firebase Google用户身份验证更改用户相关的知识,希望对你有一定的参考价值。
使用Firebase Google用户身份验证时,如果用户已经授权应用程序并且仅登录到一个Google帐户,则会立即登录。
有没有办法强制显示“选择帐户”对话框,以便用户有机会登录其他Google帐户或创建新帐户?
货币据我所知,用户必须从Google.com手动注销当前的Google帐户(或登录> 1)才能显示对话框。
您可以强制选择具有“提示”提供程序参数的帐户。
var googleAuthProvider = new firebase.auth.GoogleAuthProvider();
googleAuthProvider.setCustomParameters({
prompt: 'select_account'
});
firebase.auth().signInWithRedirect(googleAuthProvider)
使用Firebase javascript SDK v4.1.2进行测试
我想弄清楚同样的事情。根据一些Google文档,您似乎可以使用“提示”命令(“无”,“select_account”或“同意”)强制帐户选择器:
...但是似乎没有办法在Firebase的任何认证方法(特别是authWithOAuthRedirect
和authWithOAuthPopup
)中设置“提示”值。
你有没有能够搞清楚?
您应该明确地从Google退出:
Auth.GoogleSignInApi.signOut(mGoogleApiClient).setResultCallback(status -> {
mFirebaseAuth.signOut();
});
找到解决方案here
在我的下面的代码中,每次提示选择帐户时都会使用Google登录按钮...
public class MainActivity extends AppCompatActivity {
Button btn_signOut;
private GoogleSignInClient mGoogleSignInClient;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn_signOut = findViewById(R.id.btnSignOut);
btn_signOut.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
signOut();
}
});
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.build();
mGoogleSignInClient = GoogleSignIn.getClient(this, gso);
}
private void signOut() {
mGoogleSignInClient.signOut()
.addOnCompleteListener(this, new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
finish();
}
});
}
}
使用这种方式注销。
Auth.GoogleSignInApi.signOut(mGoogleApiClient).setResultCallback(new
ResultCallback<Status>()
{
@Override
public void onResult(@NonNull Status status)
{
mAuth.signOut();
}
});
以上是关于使用Firebase Google用户身份验证更改用户的主要内容,如果未能解决你的问题,请参考以下文章
Firebase Google 用户未在 Firebase 控制台身份验证中显示
将 Google 身份验证令牌与 Firebase 一起使用
Flutter Firebase - 未能正确删除经过 Google 身份验证的用户
检查用户是不是在 Android 的 Firebase Google 身份验证中首次通过身份验证