9
votes

I'm trying to integrate Firebase into my expo app using the react-native-firebase framework which has several advantages over the regular firebase package when it comes to react-native apps.

However, I'm running into difficulties since the instructions say I must add the GoogleService-Info.plist to ios/[YOUR APP NAME]/GoogleService-Info.plist, and expo apps don't have an ios folder from what I understand.

Am I pretty much screwed or is there a solution for this?

6

6 Answers

10
votes

As the react-native-firebase documentation says, you need to eject your app if you want to use this library with expo. Be mind that eject action is not reversible. More info here and here and here.

If you use Expo and would like to use this package, you'll need to eject. If you do not want to eject, but wish to make use of features such as Realtime Database (without offline support) & Authentication, you can still use the Firebase Web SDK in your project.

3
votes

Today, you can't have the Firebase react-native sdk with expo. And this is not planned according to: https://expo.canny.io/feature-requests/p/full-native-firebase-integration.

So you have to play only with the javascript sdk from Firebase.

Cloud Firestore is new, it will be better for the javascript sdk for offline and sync.

2
votes

The author of this thread: Fresh Detached Expo + RNFirebase not running on Android has managed to get it working with the Detached ExpoKit - so it's not a full ejection and keeps the expo features.

I have asked for the steps he took so we can see about getting something added to our docs and possibly a Detached ExpoKit version of our starter app.

See the expokit detaching docs for information about ExpoKit.

1
votes

I managed to get a working set of react-native with redux, firestore and expo. See Code example at Github.

But it costs the offline-persistence (see https://github.com/firebase/firebase-js-sdk/issues/436). So from my point of view it costs performance, because i need to be online to get a full working app with firestore and react-native.

1
votes

It's in progress --

https://blog.expo.io/using-firebase-in-expo-e13844061832

Using Firebase in Expo And how we plan on adding it to the client 😁 We are super excited to announce that we will be rolling out a suite of Unimodules that will provide you with easy access to native Firebase features! initially you will only be able to use these in a detached ExpoKit App. But over time we will be working to add these to vanilla Expo.

TL;DR
Here are the modules, you will need to detach to add them for now:

  • App/Core
  • Analytics
  • Authentication
  • Cloud Firestore
  • Cloud Functions
  • Instance ID
  • Performance Monitor
  • Realtime Database
  • Cloud Storage
  • Remote Config
  • Firebase Cloud Messaging
  • Remote Notifications
  • Dynamic Linking
  • Invites
  • Crashlytics

Also TL;DR
Here is a boilerplate: https://github.com/EvanBacon/expo-native-firebase

0
votes

If you are using Firebase using the mobile configuration, it does not work, but it worked smoothly when I tried the web configuration. Here is the youtube tutorial. Watch from 38:20 to set up.