Over the last few weeks, I decided to migrate my two Expo apps from Supabase to Firebase. Not because Supabase was bad - I've genuinely enjoyed using it - but I wanted to try something new and see how Firebase feels for React Native apps. Spoiler: it was smoother than I expected.
🔄 Why I made the switch
My Supabase setup worked fine for both TinyRecipe (a recipe & pantry manager) and TinyDebt (a debt-tracking app). But I wanted to:
- experiment with Firebase's native SDKs
- simplify auth and analytics setup
- test Firestore's real-time capabilities
- get some hands-on experience for future projects
⚙️ How I integrated Firebase with Expo
I used @react-native-firebase, and honestly, it was a breeze. A few notes from the migration process:
- You can use it with Expo Dev Clients (bare workflow not required).
- Setup was straightforward - I just had to update app credentials for both iOS and Android.
- Firestore queries felt super responsive compared to my previous setup.
- Firebase Authentication and Analytics required minimal config.
What surprised me most was how much Expo has improved in working with native modules - it felt almost like using plain React Native.
⚡ Lessons learned
- Supabase is amazing for quick, SQL-based setups - Firebase shines for real-time updates and offline-ready data.
- Migrating schemas was mostly painless thanks to Firestore's flexible structure.
- If you're an Expo dev curious about Firebase,
@react-native-firebaseis worth exploring.
📱 My apps
🍱 TinyRecipe is live on:
💰 TinyDebt is live on:
💬 Wrapping up
This migration taught me a lot about how flexible Expo has become. It's easier than ever to pick the tools that best fit your app - Supabase or Firebase, you can't really go wrong.
