From 16db1703f3b446aeb447b0b81a256a045f67db6e Mon Sep 17 00:00:00 2001 From: kleponijo <158453666+kleponijo@users.noreply.github.com> Date: Sun, 5 Apr 2026 20:40:09 +0700 Subject: [PATCH] Update firebase_user_repo.dart --- .../lib/src/firebase_user_repo.dart | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/packages/user_repository/lib/src/firebase_user_repo.dart b/packages/user_repository/lib/src/firebase_user_repo.dart index 534a3e9..b1b428f 100644 --- a/packages/user_repository/lib/src/firebase_user_repo.dart +++ b/packages/user_repository/lib/src/firebase_user_repo.dart @@ -89,7 +89,26 @@ class FirebaseUserRepo implements UserRepository { Future signInWithGoogle() async { try { final GoogleAuthProvider googleProvider = GoogleAuthProvider(); - await _firebaseAuth.signInWithPopup(googleProvider); + final UserCredential userCredential = + await _firebaseAuth.signInWithPopup(googleProvider); + + final User? firebaseUser = userCredential.user; + if (firebaseUser != null) { + // Check if user data already exists in Firestore + final existingUser = await userCollection.doc(firebaseUser.uid).get(); + + if (!existingUser.exists) { + // Create new user data from Google account info + final newUser = MyUser( + userId: firebaseUser.uid, + email: firebaseUser.email ?? '', + name: firebaseUser.displayName ?? 'User', + hasActiveCart: false, + ); + + await setUserData(newUser); + } + } } catch (e) { log('Google sign-in error: $e'); rethrow;