web-dev-qa-db-fra.com

PlateformeException (PlateformeException (Sign_in_failed, com.google.android.gmoogle.api.apiexception: 12500 :, NULL))

La ligne où va se bloquer:

GoogleSignInAccount googleUser = await _googleSignIn.signIn();

Qu'est-ce que j'ai essayé:

  1. J'ai généré ma clé SH1 avec cette commande keytool -list -v \ -alias androiddebugkey -keystore ~/.Android/debug.keystore
  2. Ajouter un cryptage SH1 dans la console.firebase.google.com
  3. Re-télécharger le service Google-Service.json
  4. Copier le debug.keystore de .Android à MyProject/Android
  5. Courir dans débogage et libération
  6. Ajouter dans Android/build.gradle Ces lignes:

    • classpath 'com.android.tools.build:Gradle:3.2.1'
    • ClassPath 'com.google.gms: Google-Services: 4.2.0'
  7. Ajouter dans Android/app/build.gradle Ces lignes:

    • Mise en œuvre 'com.google.firebase: Firebase-noyau: 16.0.9' sous dépendances
    • Apply Plugin: 'com.google.gms.google-services' à la fin du fichier.
  8. Création d'un fichier nommé release-signing.properties Dans le cadre de mon dossier de projet avec ces lignes.
    • storefile = Debug.keystore
    • keyalias = AndroidDebugkey
    • storePassword = Android
    • keyPassword = Android

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é:

  1. Google Sign in ne fonctionne pas après la libération de l'application Flutter
  2. flutter et google_sign_in plugin: plateformeException (Sign_in_failed, com.google.android.gmoogle.aapi.apiexception: 10 :, NULL)
  3. Google signer une erreur 125

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.

9
Mircea

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.

1
flutroid

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

1
Farmaan Elahi

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.

enter image description here

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

enter image description here

Essayez de vous connecter maintenant, ça fonctionnera!

1
Arun Yogeshwaran

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!

0
M. Werder

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

0
ΘΗΣΈΑΣ

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

0
Aravin