react-native-firebase on ExpoKit (SDK 33)

I’m trying to install Firebase on Ejected ExpoKit project, and getting this problems:

 -- Project 'android' depends on project 'app' which depends onto host.exp.exponent:expoview@33.0.0
  -- Project 'android' depends on project 'app' which depends onto com.google.firebase:firebase-messaging@17.4.0

  -- Project 'android' depends on project 'react' which depends onto com.google.firebase:firebase-messaging@18.0.0

 -- Project 'app' depends onto host.exp.exponent:expoview@33.0.0
  -- Project 'app' depends on project 'react' which depends onto com.google.firebase:firebase-config@17.0.0
  -- Project 'app' depends on project 'expo' which depends onto com.google.firebase:firebase-analytics@16.0.3

Does ExpoKit still contains firebase? How can we use it in ejected app? How should we use firebase in ExpoKit apps?

And if ExpoKit uses Firebase messaging - is it possible to use messages on iOS? ( with uploaded certs)?

I’m doing some investigation

In node_modules/expokit/maven/host/exp/exponent/expoview/33.0.0 I’ve found this dependencies

    <dependency org="com.google.firebase" name="firebase-core" rev="16.0.7" conf="api-&gt;default"/>
    <dependency org="com.google.firebase" name="firebase-messaging" rev="17.4.0" conf="api-&gt;default"/>
    <dependency org="com.google.firebase" name="firebase-core" rev="16.0.7" transitive="false" conf="releaseCompileClasspath-&gt;default"/>
    <dependency org="com.google.firebase" name="firebase-analytics" rev="16.3.0" transitive="false" conf="releaseCompileClasspath-&gt;default"/>
    <dependency org="com.google.firebase" name="firebase-analytics-impl" rev="16.3.0" transitive="false" conf="releaseCompileClasspath-&gt;default"/>
    <dependency org="com.google.firebase" name="firebase-common" rev="16.0.3" transitive="false" conf="releaseCompileClasspath-&gt;default"/>
    <dependency org="com.google.firebase" name="firebase-iid" rev="17.1.0" transitive="false" conf="releaseCompileClasspath-&gt;default"/>
    <dependency org="com.google.firebase" name="firebase-iid-interop" rev="16.0.1" transitive="false" conf="releaseCompileClasspath-&gt;default"/>
    <dependency org="com.google.firebase" name="firebase-measurement-connector-impl" rev="17.0.5" transitive="false" conf="releaseCompileClasspath-&gt;default"/>
    <dependency org="com.google.firebase" name="firebase-measurement-connector" rev="17.0.1" transitive="false" conf="releaseCompileClasspath-&gt;default"/>
    <dependency org="com.google.firebase" name="firebase-messaging" rev="17.4.0" transitive="false" conf="releaseCompileClasspath-&gt;default"/>

I’ve found workaround - setting firebase versions in gradle exact like ExpoKit uses
Here is a GitHub repo with result

https://github.com/moxorama/expokit-firebase

1 Like

i have this question a few months ago (Expo 32.0 at that time), and still didn’t found any solution.
this solution is works for you?

Yes, now I’m on ExpoKit with SDK33.

woooow great i’ll try your solution.
oh… are you using Firebase E-commerce tracking?

@moxorama, did you try to update Expokit to latest SDK 34?

@hotaru.edogawa, how does the solution work for you?

No, my company later used onesignal. Fortunately it’s more easy to implement just using their guide

yesterday i implement RN Firebase to using Analytics, and it works.
i follow tutorial from @moxorama in here :
https://github.com/moxorama/expokit-firebase/commit/b251aa02915f145ffeb80348ad42d2940421e56b

i used Expokit SDK 34 and currently im just using Analytics from FIrebase.
But the differences is only RN-Firebase version, im using 5.5.4
I read in some post that 5.5.5 had a problem with SDK 33, so the latest version which works is 5.5.4.

@moxorama: is there any problem if we using React Native link??
Because i linked manually as like you suggest