Firebase + React Native: autenticación sin conexión

Estoy usando Firebase en una aplicación React Native iOS, principalmente para almacenar datos de usuario y autenticación de usuario, que funciona muy biencuando un dispositivo realmente tiene una conexión de red en funcionamiento.

Cuando se trata de las capacidades fuera de línea de Firebase, se ve así:

El problema: los usuarios que inician una aplicación sin conectividad de red no pueden hacer nada porque nunca están iniciando sesión

Estos son los pasos para reproducir este comportamiento:

Paso 1: el usuario desconectado inicia la aplicacióncon conectividad de redel usuario hace clic en el botón "Iniciar sesión en Facebook"Firebase inicia sesión usando la autenticación de FacebookonAuthStateChanged (user) se llama con el usuario conectado como parámetroficha obtenida poruser.getToken() se envía a mi servidor, que genera un token personalizado (generatedToken) que se puede usar para iniciar sesión en Firebase Auth usandosignInWithCustomToken (generatedToken) y por lo tanto se guarda en el almacenamiento localel usuario lee y escribe felizmente en la base de datos de Firebase, los cambios se sincronizan instantáneamente con el servidor de FirebasePaso 2: el usuario conectado inicia la aplicacióncon conectividad de redaplicación se da cuenta de que hay ungeneratedToken en almacenamiento localgeneratedToken se utiliza parafirebase.auth().signInWithCustomToken (..)(igual que el paso 1.3)(igual que el paso 1.4)(igual que el paso 1.5)La conectividad de red se pierde: El usuario todavía está conectado (onAuthStateChanged (user) no se llama connull como unusercomo es el caso despuéscerrar sesión manualmente) y, por lo tanto, aún puede leer y escribir en la base de datos de FirebaseLa conectividad de red se restaura: Cambia la sincronización con el servidor FirebasePaso 3: el usuario conectado inicia la aplicaciónsin conectividad de redaplicación se da cuenta de que hay unageneratedToken en almacenamiento localgeneratedToken se utiliza parafirebase.auth().signInWithCustomToken (..)firebase.auth().signInWithCustomToken (..) falla, porque no hay conexión de redonAuthStateChanged (user) se llama connull como unuserel usuario no puede usar la base de datos Firebase en absoluto, ya que todas las solicitudes de lectura / escritura fallan debido a la falta de autenticaciónEl intento de solución

AjustepersistenceEnabled atrue en Objective-C / AppDelegate.m, justo después de inicializarFIRApp:

(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  // ...
  [FIRApp configure];
  [FIRDatabase database].persistenceEnabled = YES;
  // ...
}

Esto no conduce al resultado deseado y (al menos en mi caso) no cambia nada en lo que respecta al comportamiento de Firebase.

--- SU SUGERENCIA AQUÍ ---

Gracias por tus aportes!

Respuestas a la pregunta(1)

Su respuesta a la pregunta