Есть ли преимущества для сохранения учетной записи Google Sign-In после входа в Firebase Auth через GSI? - PullRequest
1 голос
/ 25 января 2020

При входе через 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

                            //...
...