0

I am trying to implement google sign in feature for a Flutter application using Firebase. Every time I try to implement it I get this error.

Error

W/GoogleApiManager( 4417): The service for com.google.android.gms.auth.api.signin.internal.zbe is not available: ConnectionResult{statusCode=SERVICE_INVALID, resolution=null, message=null}
E/flutter ( 4417): [ERROR:flutter/lib/ui/ui_dart_state.cc(198)] Unhandled Exception: PlatformException(sign_in_failed, com.google.android.gms.common.api.ApiException: 12500: , null, null)
E/flutter ( 4417): #0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:607:7)
E/flutter ( 4417): #1      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:167:18)
E/flutter ( 4417): <asynchronous suspension>
E/flutter ( 4417): #2      MethodChannel.invokeMapMethod (package:flutter/src/services/platform_channel.dart:367:43)
E/flutter ( 4417): <asynchronous suspension>
E/flutter ( 4417): #3      GoogleSignIn._callMethod (package:google_sign_in/google_sign_in.dart:247:30)
E/flutter ( 4417): <asynchronous suspension>
E/flutter ( 4417): #4      GoogleSignIn.signIn.isCanceled (package:google_sign_in/google_sign_in.dart:377:5)
E/flutter ( 4417): <asynchronous suspension>
E/flutter ( 4417): 

I have checked the SHA-1 debug key and it is correct. I don't know what else it could be. Any help would be greatly appreciated.

auth.dart

import 'package:firebase_auth/firebase_auth.dart';
import 'package:google_sign_in/google_sign_in.dart';

class AuthService {
  final userStream = FirebaseAuth.instance.authStateChanges();
  final user = FirebaseAuth.instance.currentUser;

  Future<void> anonLogin() async {
    try {
      await FirebaseAuth.instance.signInAnonymously();
    } on FirebaseAuthException {
      // handle error
    }
  }

  Future<void> signOut() async {
    await FirebaseAuth.instance.signOut();
  }

  Future<void> googleLogin() async {
    try {
      final googleUser = await GoogleSignIn().signIn();

      if (googleUser == null) return;

      final googleAuth = await googleUser.authentication;
      final authCredential = GoogleAuthProvider.credential(
        accessToken: googleAuth.accessToken,
        idToken: googleAuth.idToken,
      );

      await FirebaseAuth.instance.signInWithCredential(authCredential);
    } on FirebaseAuthException catch (e) {
      // handle error
    }
  }
}

Leonard
  • 91
  • 10

0 Answers0