ここ数週間で、2つのExpoアプリをSupabaseからFirebaseへ移行することにしました。Supabaseに問題があったわけではありません。実際に気に入って使っていましたが、新しいものを試し、React NativeアプリでFirebaseがどのように使えるかを知りたかったのです。結果は、予想以上にスムーズでした。
🔄 移行した理由
TinyRecipe(レシピ・食材管理アプリ)とTinyDebt(借金管理アプリ)の両方でSupabaseは問題なく動作していました。それでも、次のことを試したいと思いました。
- FirebaseのネイティブSDKを試す
- 認証と分析機能の設定を簡素化する
- Firestoreのリアルタイム機能を試す
- 今後のプロジェクトに向けて実践経験を積む
⚙️ ExpoにFirebaseを統合する
@react-native-firebaseを使いましたが、驚くほど簡単でした。移行時に気づいた点を紹介します。
- Expo Dev Clientで使用できます(Bare Workflowにする必要はありません)。
- 設定は簡単で、iOSとAndroidのアプリ認証情報を更新するだけでした。
- 以前の構成と比べて、Firestoreのクエリはとても素早く感じました。
- Firebase AuthenticationとAnalyticsの設定は最小限で済みました。
最も驚いたのは、ネイティブモジュールとの連携でExpoが大きく進化していたことです。React Nativeを直接使っているような感覚でした。
⚡ 学んだこと
- SupabaseはSQLを使った素早い構築に優れ、Firebaseはリアルタイム更新とオフライン対応データに強みがあります。
- Firestoreの柔軟な構造のおかげで、スキーマの移行はほとんど苦になりませんでした。
- Expo開発者でFirebaseに興味があれば、@react-native-firebaseを試す価値があります。
📱 私のアプリ
🍱 TinyRecipeはこちらから入手できます。
💰 TinyDebtはこちらから入手できます。
💬 まとめ
今回の移行を通じて、Expoがどれほど柔軟になったかを実感しました。アプリに最適なツールを選ぶのは、これまでになく簡単です。SupabaseでもFirebaseでも、どちらを選んでも大きく間違うことはありません。
