Skip to main content
Answer

Preserve subscription on transfer.

  • October 15, 2025
  • 3 replies
  • 53 views

Forum|alt.badge.img+3

Hello,

My app uses Firebase Anonymous Authentication exclusively. When a user with an active subscription restores their purchase on a new device, they get a new anonymous user ID.

Currently, RevenueCat transfers the entitlement to the new anonymous ID, deactivating it on the original device.

My goal: I want the subscription to be shared so that the entitlement remains active on both the original device and the new device (and any future devices). How can I achieve this subscription sharing model with anonymous users?

Thanks,

Florin

Best answer by hussain

Hi,

Thanks for reaching out. I’m happy to help.

Even though with Firebase Anonymous Authentication, each install ends up with a different anonymous identifier. In RevenueCat, that anonymous identifier is still a Custom App User ID. So when the user restores on a new device, RevenueCat sees a new customer and based on your project’s restore behavior transfers the subscription to that new customer profile and revokes it from the original one. That’s why you’re seeing the entitlement become active on the new device and inactive on the old one. This is expected, and it’s how our default “Transfer to new App User ID” behavior works.

If your goal is to let the same human use the subscription on multiple devices, the reliable approach is to use a stable, custom App User ID that is the same across all the user’s devices e.g., the Firebase Auth UID after the user signs in (not the anonymous UID). When you identify the user with a stable ID, RevenueCat treats all those sessions as the same customer, so the subscription will be active everywhere that ID is used.

The legacy “share between App User IDs” mode isn’t supported for new projects anymore, so the practical solution is to unify identity via a stable App User ID. If you switch to stable IDs and call logIn when the user authenticates, existing anonymous activity can be merged/aliased into the identified profile automatically, keeping the user’s history intact going forward.

Hope this helps, let me know if you have any other questions.

Best,

Hussain

This post has been closed for comments

3 replies

hussain
RevenueCat Staff
Forum|alt.badge.img+6
  • RevenueCat Staff
  • Answer
  • October 17, 2025

Hi,

Thanks for reaching out. I’m happy to help.

Even though with Firebase Anonymous Authentication, each install ends up with a different anonymous identifier. In RevenueCat, that anonymous identifier is still a Custom App User ID. So when the user restores on a new device, RevenueCat sees a new customer and based on your project’s restore behavior transfers the subscription to that new customer profile and revokes it from the original one. That’s why you’re seeing the entitlement become active on the new device and inactive on the old one. This is expected, and it’s how our default “Transfer to new App User ID” behavior works.

If your goal is to let the same human use the subscription on multiple devices, the reliable approach is to use a stable, custom App User ID that is the same across all the user’s devices e.g., the Firebase Auth UID after the user signs in (not the anonymous UID). When you identify the user with a stable ID, RevenueCat treats all those sessions as the same customer, so the subscription will be active everywhere that ID is used.

The legacy “share between App User IDs” mode isn’t supported for new projects anymore, so the practical solution is to unify identity via a stable App User ID. If you switch to stable IDs and call logIn when the user authenticates, existing anonymous activity can be merged/aliased into the identified profile automatically, keeping the user’s history intact going forward.

Hope this helps, let me know if you have any other questions.

Best,

Hussain


Forum|alt.badge.img+3
  • Author
  • New Member
  • October 19, 2025

Hello ​@hussain ,

Thanks for answer.

After reading a lot of docs and your message, i think i figure it out .

Now i use anonymous revenuecat user that on app lunch i link it to my actual anonymous Firebase Authentication user in the DB.

Now as per docs at transfer (restore) the old anonymous RC user marked as alias, i changed also my backend to fetch the aliases for each event (Hooks) and API so i can mark my users acordingly in the DB.

In my testing this works well now and i can achive my goal.

Thanks,

Florin


hussain
RevenueCat Staff
Forum|alt.badge.img+6
  • RevenueCat Staff
  • October 20, 2025

Hi Florin,

That’s great to hear. I’m really glad my note helped and that your new approach is working well in testing.

Feel free to reach back out if you have any other questions.

Happy you got this working!

Best,

Hussain