При входе через Firebase Auth с провайдером "google.com", есть ли какие-либо преимущества для поддержания основного аккаунта Google подключенным?
Все примеры, которые я видел, оставляют его подключенным, но Я сталкивался с ситуацией, когда мне лучше отключить учетную запись Google, как только я войду в Firebase через FirebaseAuth.getInstance().signInWithCredential(GoogleAuthProvider.getCredential(result.getIdToken(), null))
вместо того, чтобы оставить ее подключенной («авторизованной»). Можно даже отключиться перед вызовом signInWithCredential
, поскольку idToken все еще действует в течение определенного периода времени.
Выполнение этого, по-видимому, не имеет никаких негативных побочных эффектов. Вот что я делаю:
GoogleSignInClient client = GoogleSignIn.getClient(this, googleSignInOptions);
client.silentSignIn().addOnCompleteListener(new OnCompleteListener<GoogleSignInAccount>() {
@Override public void onComplete(@NonNull Task<GoogleSignInAccount> task) {
if (task.isSuccessful()) {
GoogleSignInAccount result = task.getResult();
// Disconnect from Google Account
GoogleSignIn.getClient(this, googleSignInOptions).signOut();
if (result != null) {
FirebaseAuth.getInstance().signInWithCredential(GoogleAuthProvider.getCredential(result.getIdToken(), null)).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override public void onComplete(@NonNull Task<AuthResult> task) {
// but I might as well disconnect here
//GoogleSignIn.getClient(this, googleSignInOptions).signOut();
if (task.isSuccessful()) {
final FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
// OK, user is signed in
//...