File size: 1,573 Bytes
b225a21 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
import 'package:firebase_auth/firebase_auth.dart';
import 'package:google_sign_in/google_sign_in.dart';
class AuthService {
final FirebaseAuth _auth = FirebaseAuth.instance;
final GoogleSignIn googleSignIn = GoogleSignIn(
clientId:
"387936576242-iejdacrjljds7hf99q0p6eqna8rju3sb.apps.googleusercontent.com");
// Sign in with Google using redirect
// Sign in with Google using redirect
Future<UserCredential?> 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,
);
return await _auth.signInWithCredential(credential);
}
} catch (e) {
print("Error during Google Sign-In: $e");
return null;
}
}
// Sign in with GitHub using redirect
Future<UserCredential?> signInWithGitHub() async {
try {
final GithubAuthProvider provider = GithubAuthProvider();
return await _auth.signInWithPopup(provider);
} catch (e) {
print("Error during GitHub Sign-In: $e");
return null;
}
}
// Sign out
Future<void> signOut() async {
await _auth.signOut();
}
// Get current user
User? getCurrentUser() {
return _auth.currentUser;
}
}
|