React NativeでFirebaseを使うとなったとき、以下の2つの選択肢がある。
- Firebase JS SDK
- React Native Firebase
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を使うのが無難に感じる。