If you are building a React Native app and use Revenuecat for app subscriptions, you can grant lifetime free access to selected users without creating special products or promotional subscriptions.

RevenueCat terminology

RevenueCat has a concept of Products, Entitlements and Offerings.

  • Products are what you created in App store and Play store, then imported into RevenueCat. That is what the user buys.
  • Entitlements are levels of access. Think Pro, Expert and so on.
  • Offerings are groups of products shown on a paywall.

Products and Offerings are irrelevant for this use case. Free access is granted manually via a new entitlement.

Create entitlement

Create a new entitlement, let's call it "free". Don't assign any products to it.

That entitlement is something you will grant manually from the RevenueCat dashboard.

Identify your customer

Next thing you need is the customer id.

If you don't assign your own customer id, RevenueCat will assign an anonymous id ($RCAnonymousID:<id_here>).

If you use some sort of identification, like firebase auth, I think it's cleaner if you tie the customer id to the firebase id. You can also link it to the firebase email.

Code part

If you already have implemented RevenueCat check in your code, you also need to add an additional check for "free" entitlement, something like

customer.entitlements?.active['free']?.isActive

If your app is offline first, then the check would be in your app, otherwise backend.

User Flow

For example, when my friend signs up for my app, I find him by his firebase id or an email address from Firebase users.

Then I do a lookup in RevenueCat customers and grant a free lifetime access with the entitlement that I created.

Propagation should be immediate if you have a customerInfo update listener in your app, something like this:

const listener = (info: CustomerInfo) => {
  // process 
};
// Don't forget to cleanup with removeCustomerInfoUpdateListener
Purchases.addCustomerInfoUpdateListener(listener);

Youtube link: https://youtu.be/cGDzu_PziWw