【React Native】Firebaseを使うときのパッケージ選択肢

React NativeでFirebaseを使うとなったとき、以下の2つの選択肢がある。

  • Firebase JS SDK
  • React Native Firebase

docs.expo.dev

Firebase JS SDKを使う場合だと、ネイティブコードへのアクセスはサポートされておらず、そのためFirebase AuthやFirestoreなどの機能は使えるが、AnalyticsやDynamic Links、Crashlyticsなどの機能が使えないというデメリットがある。反対に、Expo Goでも使えるメリットがある。

React Native Firebaseでは、ネイティブコードへのアクセスがサポートされており、Firebase Authなどに加え、AnalyticsやDynamic Links、Crashlyticsなどの機能も使うことができる。一方で、Expo Goでは使えないデメリットがある。

両方のパッケージを同時に使うこともできるであろうが(試してない)、その手の場合、大体npmパッケージの依存解決でエラーに悩まされることが目に見えそうなので避けたい。例えばReact JS SDKとReact Native Firebaseでサポートする最小のNodeバージョンが異なるなどが起きる。

これから作るReact Nativeプロジェクトでは、基本的にdevelopment buildでReact Native Firebaseを使うのが無難に感じる。