diff options
Diffstat (limited to 'lib/firebase/auth.dart')
-rw-r--r-- | lib/firebase/auth.dart | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/lib/firebase/auth.dart b/lib/firebase/auth.dart new file mode 100644 index 0000000..791e69a --- /dev/null +++ b/lib/firebase/auth.dart @@ -0,0 +1,71 @@ +import 'package:firebase_auth/firebase_auth.dart'; + +class Auth { + final FirebaseAuth _auth = FirebaseAuth.instance; + final GithubAuthProvider _githubProvider = GithubAuthProvider(); + final GoogleAuthProvider _googleAuthProvider = GoogleAuthProvider(); + + User? get currentUser => _auth.currentUser; + + Future<bool> createUserWithEmailAndPassword({ + required String email, + required String password, + }) async { + try { + await _auth.createUserWithEmailAndPassword( + email: email, + password: password, + ); + return true; + } catch (e) { + print(e); + return false; + } + } + + Future<bool> signInWithEmailAndPassword({ + required String email, + required String password, + }) async { + try { + UserCredential cred = await _auth.signInWithEmailAndPassword( + email: email, + password: password, + ); + return cred.user?.emailVerified == true; + } catch (e) { + print(e); + return false; + } + } + + Future<bool> signInWithGoogle() async { + try { + await _auth.signInWithProvider(_googleAuthProvider); + return true; + } catch (e) { + print(e); + return false; + } + } + + Future<bool> signInWithGithub() async { + try { + await _auth.signInWithProvider(_githubProvider); + return true; + } catch (e) { + print(e); + return false; + } + } + + Future<bool> signOut() async { + try { + await _auth.signOut(); + return true; + } catch (e) { + print(e); + return false; + } + } +} |