我不是在 flutter 中使用 GoogleSignedIn() 进行签名的。
我收到以下异常:-
I/flutter (22662):[firebase_auth/invalid-credential] 提供的身份验证凭证格式错误或已过期。 [无法解析谷歌id_token:ya29.A0AfH6SMDzztUqaSgwv9hTdVXkNyKQaUBMq-z2ghJRGygrSIZ032SVh6nL1m-BLAGezvXrT5AbUV7q56cozAkaUw1JAWiIARMs3fRHUUIDiCOv0p_pw0qP_vQo6Y_aBtKUu08HvNE9TqwjGu2TLWNs4DR7DjTVaA]
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/cupertino.dart';
import 'package:google_sign_in/google_sign_in.dart';
class GoogleSignInProvider extends ChangeNotifier {
bool _isSigningIn;
final googleSignIn = GoogleSignIn();
GoogleSignInProvider() {
_isSigningIn = false;
}
bool get isSigningIn => _isSigningIn;
set isSigningIn(bool isSigningIn) {
_isSigningIn = isSigningIn;
notifyListeners();
}
Future login() async {
isSigningIn = true;
final user = await googleSignIn.signIn();
print("user : -----$user");
if (user == null) {
isSigningIn = false;
return;
} else {
final googleAuth = await user.authentication;
print("googleAuth : -----${googleAuth.toString()}");
final credential = GoogleAuthProvider.credential(
accessToken: googleAuth.accessToken,
idToken: googleAuth.accessToken,
);
FirebaseAuth.instance.signInWithCredential(credential).then((credential) {
print(credential);
isSigningIn = false;
}).catchError(
(error) {
print(error);
isSigningIn = false;
logOut();
},
);
}
}
void logOut() async {
await googleSignIn.disconnect();
FirebaseAuth.instance.signOut();
}
}