La ligne où va se bloquer:
GoogleSignInAccount googleUser = await _googleSignIn.signIn();
Qu'est-ce que j'ai essayé:
keytool -list -v \ -alias androiddebugkey -keystore ~/.Android/debug.keystore
debug.keystore
de .Android
à MyProject/Android
Ajouter dans Android/build.gradle
Ces lignes:
Ajouter dans Android/app/build.gradle
Ces lignes:
release-signing.properties
Dans le cadre de mon dossier de projet avec ces lignes. Aussi, j'ai cherché dans Tout Stackoverflow question que je pouvais trouver pour cette question, et aucun d'entre eux n'était utile pour moi.
mon pubspec.yaml:
firebase_core: ^0.4.0+1
firebase_analytics: ^3.0.1
cloud_firestore: ^0.11.0+2
firebase_auth: ^0.11.1
google_sign_in: ^4.0.1+3
rxdart: ^0.22.0
Classe d'authentification:
class AuthService {
final GoogleSignIn _googleSignIn = GoogleSignIn();
final FirebaseAuth _auth = FirebaseAuth.instance;
final Firestore _db = Firestore.instance;
Observable<FirebaseUser> user;
Observable<Map<String, dynamic>> profile;
PublishSubject loading = PublishSubject();
AuthService() {
user = Observable(_auth.onAuthStateChanged);
profile = user.switchMap((FirebaseUser user) {
if (user != null) {
return _db
.collection('user')
.document(user.uid)
.snapshots()
.map((snap) => snap.data);
} else {
return Observable.just({});
}
});
}
Future<FirebaseUser> googleSignIn() async {
loading.add(true);
GoogleSignInAccount googleUser = await _googleSignIn.signIn();
GoogleSignInAuthentication googleAuth = await googleUser.authentication;
// FirebaseUser user = await _auth.signInWithGoogle(
// accessToken: googleAuth.accessToken, idToken: googleAuth.idToken);
final AuthCredential credential = GoogleAuthProvider.getCredential(
accessToken: googleAuth.accessToken,
idToken: googleAuth.idToken,
);
FirebaseUser user = await _auth.signInWithCredential(credential);
updateUserData(user);
print("Sign in" + user.displayName);
loading.add(false);
return user;
}
}
Classe principale:
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
// This widget is the root of your application.
AuthService authService = AuthService();
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blueGrey,
),
home: Scaffold(
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
MaterialButton(
child: Text("Log in with Google"),
color: Colors.blueGrey,
textColor: Colors.deepOrange,
onPressed: () => authService.googleSignIn(),
),
MaterialButton(
child: Text("LogOut"),
color: Colors.redAccent,
textColor: Colors.purple,
onPressed: () => authService.signOut(),
),
],
),
),
),
);
}
}
Maintenant, si l'un de vous pourrait me signaler dans la bonne direction, je serais très reconnaissant.
Voici quelques liaisons StackoverFlow que j'ai déjà essayé:
Je n'ai pas eu de chance avec aucun d'entre eux, s'il vous plaît laissez-moi savoir ce que vous pensez et comment puis-je le réparer.
J'ai aussi essayé presque toutes les réponses que je peux chercher à partir d'Internet.So, je décide d'essayer iOS Side, puis cela me donne toujours une erreur "403 client restreint" .Ce, je détermine sa question de côté du serveur .fin intégralement que j'ai trouvé que j'ai oublié de mettre en avant le support Adresse de messagerie dans Google Developers Console> API et Service> Certificat> Écran de consentement utilisateur Link et cette option également dans votre paramètre de projet Firebase .Après que tout devrait faire fonctionner. Est-ce que cela vous aidera.
Après avoir suivi toutes les étapes mentionnées dans la documentation, même je faisais face au même problème. Une chose a fonctionné pour moi, c'est ajouter l'email de support dans la page de configuration de la console Firebase
Accédez à la page API & SERTCIES de votre compte Google et assurez-vous de sélectionner le projet de votre intérêt dans le coin supérieur gauche, comme indiqué ci-dessous.
Assurez-vous d'avoir l'identifiant de messagerie de support saisi dans ce qui précède
Et tous les champs ci-dessous doivent avoir une valeur
Essayez de vous connecter maintenant, ça fonctionnera!
J'ai couru exatly dans le même problème, ce qui a résolu le problème pour moi devait ajouter une empreinte digitale SHA-256 à la SHA-1
comme mentionné ici -> flutter et google_sign_in plugin: plateformeException (Sign_in_failed, com.google.androd.gmoogle.android.gmoogle.api.apiexception: 10 :, NULL)
J'espère que cela fonctionne pour vous aussi!
eut le même problème pouvait utiliser Visual Studio lorsque j'ai changé en Android Studio il a fonctionné. Je suppose parce que je suis connecté à Firebase avec Android studio I errer si je peut faire la même chose avec vs oh bien que cela aide quelqu'un
Je suis confronté au même problème, je l'ai résolu en ajoutant les empreintes digitales de débogage/libération SHA1 et SHA256 à l'aide de KeyTool
Libérer
keytool -exportcert -list -v -alias <your-key-name> -keystore <path-to-production-keystore>
Déboguer
keytool -list -v -alias androiddebugkey -keystore %USERPROFILE%\.Android\debug.keystore
Plus de détails ici: https://developers.google.com/android/guides/client-auth