Subscription
Subscription access gating
Paid access is determined from Superwall subscription status and RevenueCat CustomerInfo, not Firestore alone.
In one sentence
RevenueCat/Superwall decide paid access; Firestore stores mirrors only.
Current behavior
SubscriptionService.isPaidSubscriber checks debug/reviewer bypasses, Superwall
status, then RevenueCat entitlements/subscriptions. AuthCubit emits paid/free
states. SuperwallPurchaseController maps store purchases through RevenueCat
and syncs status. Android early Superwall configure omits purchaseController —
treat Android sync as higher risk.
Current state
Implemented with platform caveat; verified-from-source.