import 'package:firebase_auth/firebase_auth.dart'; class AuthService { AuthService._(); static final AuthService instance = AuthService._(); final FirebaseAuth _auth = FirebaseAuth.instance; Stream authStateChanges() => _auth.authStateChanges(); User? get currentUser => _auth.currentUser; Future signInWithEmailPassword({ required String email, required String password, }) { return _auth.signInWithEmailAndPassword(email: email, password: password); } Future registerWithEmailPassword({ required String email, required String password, }) { return _auth.createUserWithEmailAndPassword( email: email, password: password, ); } Future sendPasswordResetEmail(String email) { return _auth.sendPasswordResetEmail(email: email); } Future signInWithGoogle() { final provider = GoogleAuthProvider(); provider.setCustomParameters({'prompt': 'select_account'}); return _auth.signInWithPopup(provider); } Future signInWithGithub() { final provider = GithubAuthProvider(); return _auth.signInWithPopup(provider); } Future signOut() { return _auth.signOut(); } }