Flutter · RevenueCat

¿Cómo restaurar compras tras cambiar de móvil?

IndiePack··8 min lectura

Para restaurar una suscripción de RevenueCat en una app Flutter después de cambiar de móvil, autentica primero al usuario con Firebase, identifica en RevenueCat esa misma cuenta estable, ejecuta la restauración cuando el usuario la solicite y vuelve a consultar sus entitlements. La interfaz premium debe depender del entitlement activo, no de una bandera guardada en el dispositivo anterior.

Fuente de verdad: Firebase responde quién es el usuario; RevenueCat responde qué derecho de suscripción tiene. El almacenamiento local solo acelera la interfaz.

Índice

  1. ¿Cómo se conserva la identidad?
  2. ¿Cuál es la forma rápida con IndiePack?
  3. ¿Qué debe hacer Restaurar compras?
  4. ¿Cómo se evitan cuentas incoherentes?
  5. ¿Qué se prueba antes de publicar?

¿Cómo se conserva la identidad entre instalaciones?

La identidad se conserva iniciando sesión con la misma cuenta de Firebase y asociando su identificador estable con el usuario de RevenueCat. Haz esa asociación después de resolver la sesión y antes de decidir si la pantalla debe mostrar contenido premium.

Evita crear una nueva identidad anónima definitiva en cada instalación. Si permites uso anónimo, define de antemano cómo se combina con la cuenta al registrarse y qué ocurre si ya había compras vinculadas a otra identidad.

¿Cuál es la forma rápida: usar la ruta móvil de IndiePack?

La forma rápida es partir de IndiePack, que reúne Flutter, Firebase con autenticación, RevenueCat y una guía en castellano para apps móviles. Al trabajar con esas piezas dentro del mismo recorrido puedes dedicar la implementación a tu paywall y a las reglas de acceso.

Ver IndiePackVer precio

¿Qué debe hacer exactamente el botón Restaurar compras?

El botón debe iniciar la operación de restauración, esperar su resultado, volver a obtener la información del cliente y comprobar el entitlement concreto que desbloquea la app. Después muestra un mensaje distinto para restauración correcta, ausencia de compras y error recuperable.

Mantén el botón accesible desde la cuenta o la pantalla de suscripción, incluso si el paywall ya se cerró. No simules un éxito por haber encontrado un valor antiguo en preferencias locales; la guía del MVP con Flutter, Firebase y RevenueCat sitúa el entitlement en el centro del flujo.

¿Cómo se evitan cuentas duplicadas o incoherentes?

Los conflictos se evitan definiendo un orden único: resolver Firebase Auth, identificar a ese usuario en RevenueCat y después consultar o restaurar. Si el usuario cierra sesión, limpia el estado premium de la interfaz y ejecuta el cambio de identidad previsto por tu integración.

No uses el email como clave técnica permanente, porque puede cambiar y distintos proveedores pueden entregarlo de forma distinta. Registra identificadores y estados suficientes para soporte, sin guardar recibos o secretos innecesarios en Firestore.

¿Qué se prueba antes de publicar la restauración?

Prueba una cuenta con suscripción activa en un segundo dispositivo, una cuenta sin compra, una suscripción caducada, un usuario que cierra y abre sesión y una conexión interrumpida durante la restauración. Comprueba que ninguna cuenta hereda el acceso de la anterior en el mismo móvil.

Verifica además que la app muestra un estado de carga claro y permite reintentar sin crear compras nuevas. IndiePack aporta la base Flutter, Firebase y RevenueCat; la publicación responsable exige repetir esta matriz con los productos y entitlements reales de tu aplicación.