expo-firebase-invites
expo-firebase is still in RC and therefore subject to breaking changings. Be sure to run
yarn upgrade
andcd ios; pod install
when upgrading.
expo-firebase-invites
provides a built-in solution for app referrals and sharing via email or SMS.
Installation
Make sure to install and setup expo-firebase-links
before proceeding.
Now, you need to install the package from npm
registry.
npm install expo-firebase-invites
or yarn add expo-firebase-invites
iOS
Cocoapods
If you're using Cocoapods, add the dependency to your Podfile
:
pod 'EXFirebaseInvites', path: '../node_modules/expo-firebase-invites/ios'
and run pod install
.
Common Setup
Now follow the setup instructions in the docs.
Invites will only work on iOS if the user is authenticated with Google.
Update AppDelegate.m
Replace the EXFirebaseLinks
import with EXFirebaseInvites
at the top of your ios/[App Name]/AppDelegate.m
:
Replace the EXFirebaseLinks
methods with EXFirebaseInvites
as follows:
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary<NSString *, id> *)options { return [[EXFirebaseInvites instance] application:application openURL:url options:options];} - (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray *))restorationHandler { return [[EXFirebaseInvites instance] application:application continueUserActivity:userActivity restorationHandler:restorationHandler];}
Android
-
Append the following lines to
android/settings.gradle
:include ':expo-firebase-invites'project(':expo-firebase-invites').projectDir = new File(rootProject.projectDir, '../node_modules/expo-firebase-invites/android')and if not already included
include ':expo-core'project(':expo-core').projectDir = new File(rootProject.projectDir, '../node_modules/expo-core/android')include ':expo-firebase-app'project(':expo-firebase-app').projectDir = new File(rootProject.projectDir, '../node_modules/expo-firebase-app/android')include ':expo-firebase-links'project(':expo-firebase-links').projectDir = new File(rootProject.projectDir, '../node_modules/expo-firebase-links/android') -
Insert the following lines inside the dependencies block in
android/app/build.gradle
:api project(':expo-firebase-invites')and if not already included
api project(':expo-core')api project(':expo-firebase-app')api project(':expo-firebase-links') -
Include the module in your expo packages:
./android/app/src/main/java/host/exp/exponent/MainActivity.java
/** At the top of the file.* This is automatically imported with Android Studio, but if you are in any other editor you will need to manually import the module.*/// This should be here for all Expo Firebase features.// Later in the file...@Overridepublic List<Package> {// Here you can add your own packages.return Arrays.<Package>;}
Usage
;;; // API can be accessed with: firebase.invites(); Component async { // ... initialize firebase app const invitation = 'Title' 'Message'; invitation; try // send the invitation const invitationIds = await firebase; catch message // An Error was thrown. console; } { return <View />; }
Trouble Shooting
If you run into issues installing the ios Pod, you may want to update GoogleSignIn
. You can do this with: pod update GoogleSignIn