2017-10-14 2 views
1

j'exécute goOffline() au début (en AppDelegate) comme ça:Firebase en temps réel les auditeurs de la base de données ne se déclenche pas en mode hors ligne d'abord sur iOS

Database.database().goOffline() 

et de créer des données par défaut dans le code. Je m'attends à ce que les auditeurs de ces données vont se déclencher et les données devraient être disponibles, mais cela n'arrive pas.

exemple Listener:

ref!.observeSingleEvent(of: .value) { (snapshot: DataSnapshot) in 
    // handle snapshot here    
} 

Si je commentez goOffline() lors du premier lancement, puis tout fonctionne comme un charme - même les événements .childAdded. Le problème est lié uniquement à premier lancement en en mode hors connexion. (On dirait que Firebase nécessite un mode en ligne pour créer une structure de données locale, etc.)

Comment gérer cela? * Par défaut, l'application doit être en mode déconnecté et le mode en ligne doit être disponible uniquement pour les utilisateurs Premium.

+0

Avez-vous trouvé une solution à cela? – sdgandhi

Répondre

0

Avez-vous activé la persistance?
Database.database(). IsPersistenceEnabled = true
Jetez un oeil here

+0

Oui, la persistance est activée. Il fonctionne même après la première exécution en mode déconnecté. Le problème est lié uniquement à la première exécution. –

+0

Avez-vous également activé la synchronisation pour ce noeud spécifique? – r3dm4n

+0

Non, on dirait que isPersistanceEnabled permet la synchronisation pour tous les nœuds - tous sont accessibles en mode avion. Laissez-moi essayer cette approche, merci! –