0
votes

Flutter Google Sign in Stay Connexion

J'ai implémenté l'authentification de Firebase Auth Google Sign in mais comment puis-je rester connecté après la fermeture de l'application, j'ai même placé cette ligne attendre _auth.CurrentUser () mais ne fonctionne toujours pas. Vous trouverez ci-dessous mon code de connexion.

loginpage.dart (ancien) xxx

loginpage.dart (nouveau) xxx

Je dois ajouter ce code afin de rester connecté. Au fait, comment puis-je capable Pour faire la même chose pour Facebook?


0 commentaires

3 Réponses :


0
votes

Je n'ai personnellement pas essayé ceci après la libération de flotter dans un canal stable, mais vous pouvez simplement stocker les informations utilisateur obtenues à partir des jetons Auth.

Jetez un coup d'œil à ceci: https://medium.com/flutterpub/flutter-how-a-o-user-login-with-firebase-a6af760b14d5


0 commentaires

2
votes

7 commentaires

Salut! Merci d'avoir répondu à ma question mais ne fonctionne toujours pas. Puis-je demander où devrais-je mettre l'extrait? Devrait-il être dans le loginpage ou la page d'accueil? Merci


Mettez-le dans la méthode initialisée de la page que vous utilisez Google Sign in. Par exemple, si vous utilisez Google Sign dans la page de connexion et la racine est Statefulwidget, il suffit de le mettre dans iniState ()


Désolé d'avoir mis à jour mon code et je ne vous ai pas dit. Est-ce exact?


Presque, vous n'avez pas besoin d'attribuer le paramètre scopes lorsque vous créez Googlesignin instance? J'ai trouvé que plus d'un GooglesigninAccount dans votre code. Probablement, vous devez utiliser le non-null _currentturer pour obtenir le googlesignauthentication des choses au lieu de vous connecter à nouveau.


Les cordes que vous voulez dire? Googlesignin _googlesignin = Googlesignin (Scopes: ['Email', 'https://www.googleapis.com/auth/contacts.Readonly',],),); . Été bloqué avec ce reste connecté pendant un certain temps, est-ce le problème de la route? Pourriez-vous m'aider à vérifier le code? Merci


J'ai traversé votre code. Comme je l'ai dit ci-dessus, vous ne devriez avoir qu'un seul Googlesignin instance. Testez-vous si elle peut se connecter avec succès, même si vous devez entrer dans l'e-mail et le mot de passe à chaque fois? Une fois que vous vous êtes connecté avec succès, l'état de connexion peut être conservé pendant une période de temps. De plus, vérifiez cet extrait: gist.github.com/seanzom/261fa991B925C6336075DA98CDB30C05 , j'ai extrait le < Code> googlesignin partie de votre code et testé déjà.


J'utilise une autre méthode et que cela fonctionne, au-dessus du code mis à jour, mais ceci est uniquement destiné à Google Sign in. Comment puis-je le faire fonctionner avec Facebook?



1
votes
Future googleSignIn() async {
try {
  GoogleSignInAccount googleUser = await _googleSignIn.signIn();
  GoogleSignInAuthentication googleAuth = await googleUser.authentication;

  final AuthCredential credential = GoogleAuthProvider.getCredential(
    accessToken: googleAuth.accessToken,
    idToken: googleAuth.idToken,
  );

  FirebaseUser _user = (await _auth.signInWithCredential(credential)).user;
  assert(_user.email != null);
  assert(_user.displayName != null);
  assert(!_user.isAnonymous);
  assert(await _user.getIdToken() != null);


    DatabaseServices(uid:_user.uid,email: _user.email)
        .updateUserData(_user.displayName,_user.photoUrl);

  print("signed in " + _user.displayName + "\n" + _user.photoUrl);

  return _user;
} catch (e) {
  print(e.toString());
  return null;
}
}

0 commentaires