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
}
}
}