summaryrefslogtreecommitdiff
path: root/lib/firebase/auth.dart
diff options
context:
space:
mode:
Diffstat (limited to 'lib/firebase/auth.dart')
-rw-r--r--lib/firebase/auth.dart71
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;
+ }
+ }
+}