,这是我的消防基地,
下面是我从Firebase Auth获得服务的firebase类:
class FirebaseService {
final FirebaseAuth _auth = FirebaseAuth.instance;
final GoogleSignIn _googleSignIn = GoogleSignIn();
static const String _GOOGLE_AUTH = "/social-login";
Future<String?> signInWithGoogle() async {
try {
final GoogleSignInAccount? googleSignInAccount =
await _googleSignIn.signIn();
final GoogleSignInAuthentication googleSignInAuthentication =
await googleSignInAccount!.authentication;
final AuthCredential credential = GoogleAuthProvider.credential(
accessToken: googleSignInAuthentication.accessToken,
idToken: googleSignInAuthentication.idToken,
);
await _auth.signInWithCredential(credential);
printMe("idtoken ${googleSignInAuthentication.idToken}");
} on FirebaseAuthException catch (e) {
print(e.message);
rethrow;
}
return null;
}签出方法:
Future<void> signOutFromGoogle() async {
await _googleSignIn.signOut();
await _auth.signOut();
}
}这是运行日志。

发布于 2022-08-17 10:23:12
如果没有错误信息,很难回答这个问题,但是给您
记住将SHA键添加到防火墙中。
final FirebaseAuth _auth = FirebaseAuth.instance;
final GoogleSignIn _googleSignIn = GoogleSignIn();
static const String _GOOGLE_AUTH = "/social-login";
Future<TPFirebaseUser> signInWithGoogle() async {
try {
final GoogleSignInAccount? googleSignInAccount = await _googleSignIn.signIn();
if (googleSignInAccount != null) {
final GoogleSignInAuthentication googleSignInAuthentication = await googleSignInAccount.authentication;
final AuthCredential credential = GoogleAuthProvider.credential(
accessToken: googleSignInAuthentication.accessToken,
idToken: googleSignInAuthentication.idToken,
);
final UserCredential authResult = await _auth.signInWithCredential(credential);
return TPFirebaseUser(authResult.user, null, null);
}
} on FirebaseAuthException catch (error) {
return TPFirebaseUser(null, null, error);
} catch (error) {
return TPFirebaseUser(null, error.toString(), null);
}
return const TPFirebaseUser(null, 'Unknown Google Sign in error', null);
} Future<void> signOut() async {
try {
Future.wait([
_auth.signOut(),
_googleSignIn.signOut(),
]);
} catch (error) {
rethrow;
}
}import 'package:equatable/equatable.dart';
import 'package:firebase_auth/firebase_auth.dart';
class TPFirebaseUser extends Equatable {
final User? user;
final String? error;
final FirebaseAuthException? authException;
const TPFirebaseUser(this.user, this.error, this.authException);
@override
List<Object?> get props => [user, error, authException];
}https://stackoverflow.com/questions/73386146
复制相似问题