Google Firebase signe et oublier de l'utilisateur dans l'application Android
Quand je l'appelle mFirebaseAuth.signOut()
ou mFirebaseUser.delete()
mon FirebaseAuth.AuthStateListener()
œuvres correcte et retourne null
comme FirebaseUser
instance dans onAuthStateChanged
, je l'actualisation de l'INTERFACE utilisateur et de montrer "connectez-vous avec Google".
Mais quand je veux me connecter à nouveau, je ne vois pas le pop-up avec les utilisateurs (j'ai 2 utilisateurs sur mon appareil, attaché à l'image). L'application de cette pop-up seulement dans la première connexion, après qu'il utilise le même utilisateur. Si je l'appli de données sur l'écran paramètres, je vais être en mesure de voir ce pop-up.
Ma question est comment faire pour afficher cette fenêtre pop-up après chaque déconnexion.
J'exécute ce code lorsque vous appuyez sur les bouton De connexion:
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken(getString(R.string.default_web_client_id))
.requestEmail()
.build();
mGoogleApiClient = new GoogleApiClient.Builder(this)
.enableAutoManage(this /* FragmentActivity */, this /* OnConnectionFailedListener */)
.addApi(Auth.GOOGLE_SIGN_IN_API, gso)
.build();
Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
startActivityForResult(signInIntent, FirebaseActivity.REQUEST_SIGN_IN);
Dans onActivityResult()
, je reçois une instance de GoogleSignInResult
donc ce dont j'ai besoin se passe après que j'appelle startActivityForResult()
.
Un rapide deviner: l'appel de
signOut()
signes à l'utilisateur de Firebase d'Authentification. Il ne signe pas l'utilisateur de l'sociales sous-jacentes fournisseur (par exemple, Facebook, Google). Alors, la prochaine fois que vous allumez le signe de débit pour ce fournisseur, il sera pris immédiatement par votre code (ou la bibliothèque que vous avez utilisé). Mais ça va être plus facile en effet de dire ce qu'il se passe si vous montrez de la un code minimal qui reproduit le problème.Vous pourriez obtenir quelques indices en comparant votre code avec le Firebase Auth Démarrage rapide du projet. Lorsque je l'exécute à l'aide de Google Compte, le compte de la boîte de dialogue sélecteur est présenté à chaque fois. Ne sais pas si c'est vrai pour Twitter, Facebook, etc.
ajouté le code
google authentification
OriginalL'auteur GrafOrlov | 2016-08-01
Vous devez vous connecter pour publier un commentaire.
Dans le Firebase Auth de Démarrage rapide exemple de code, le signe-pour Google fournisseur comprend les étapes suivantes. Êtes-vous en faveur
GoogleSignInClient.signOut()
lorsque vous vous connectez?Auth.GoogleSignInApi.signOut()
. Merci beaucoup, cela fonctionne maintenant.Bon @qbix! J'ai oublié la partie de la section de démarrage rapide code.
Crédit va vraiment à vous @FrankvanPuffelen. Votre commentaire m'a mis sur la piste.
Comment puis-je obtenir
mGoogleApiClient
? Et ce n'updateUI
faire? Comment puis-je le faire avec Facebook? J'ai logout dans une classe à part. MerciRegardez dans la section de Démarrage rapide exemple de code lié à la réponse.
OriginalL'auteur Bob Snyder
Une autre option est d'utiliser le FirebaseUI de la bibliothèque. Il simplifie signe dans et signe opérations dans un sens qu'il va faire tout le levage lourd pour vous.
Kotlin
Java
Espère que cette aide
OriginalL'auteur ZooS
Pour quelqu'un d'autre qui veut que ce résultat (comme dans l'obtention de la google compte les options de l'arrière) sur une activité différente.
Ajouter ceci sur la page de connexion, et avant de passer à l'activité suivante, il suffit d'appeler
SignOut()
.et puis, dans votre classe, vous pouvez appeler
C'est facile, et il va fonctionner. Cheers!
OriginalL'auteur Alex Barbu
Vous pouvez également définir quelque chose comme ceci:
OriginalL'auteur Vidur Chanana
ce code est écrit pour travailler en tant que copie dernières viens de lire COMMENTAIRES dans le code afin de le personnaliser à ur besoins, je préfère envoyer des utilisateur pour vous connecter
OriginalL'auteur Sumer Singh
Je n'ai
mGoogleSignInClient.signOut()
cela fonctionne comme prévu.
OriginalL'auteur Ankit Demonstrate