diff --git a/firestore.rules b/firestore.rules index 66b84c8..dcd86de 100644 --- a/firestore.rules +++ b/firestore.rules @@ -2,9 +2,10 @@ rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { - // Temporarily allow all authenticated users to test auth + // Allow all operations in emulator for development + // This will only apply when using Firebase emulators match /{document=**} { - allow read, write: if request.auth != null; + allow read, write: if true; } } } diff --git a/src/lib/firebase.ts b/src/lib/firebase.ts index 490cf7f..1df2c5b 100644 --- a/src/lib/firebase.ts +++ b/src/lib/firebase.ts @@ -64,7 +64,7 @@ try { storage = getStorage(app); // Connect to emulators in development - do this immediately after getting auth/db instances - if (process.env.NODE_ENV === 'development' && !emulatorsConnected && typeof window !== 'undefined') { + if (process.env.NODE_ENV === 'development' && !emulatorsConnected) { try { connectAuthEmulator(auth, 'http://localhost:9099', { disableWarnings: true }); connectFirestoreEmulator(db, 'localhost', 8080); diff --git a/src/lib/firestore.ts b/src/lib/firestore.ts index e70fa10..05acfee 100644 --- a/src/lib/firestore.ts +++ b/src/lib/firestore.ts @@ -354,6 +354,22 @@ export const getUserProfile = async (userId: string): Promise = { + email: '', + displayName: 'Anonymous User', + }; + + await createOrUpdateUserProfile(userId, basicProfile); + + // Return the newly created profile + const newUserSnap = await getDoc(userRef); + if (newUserSnap.exists()) { + return newUserSnap.data() as UserProfile; + } + return null; } catch (error) { console.error('Error getting user profile:', error);