2015-11-22 22 views
11

Sto sviluppando un piccolo insieme di classi che renderà più semplice mantenere sincronizzati i tuoi dati principali con il tuo Firebase. Ma recentemente mi sono imbattuto nello Firebase's iOS Offline Capabilities e ho notato, per quanto riguarda la persistenza dei dati, che mi sembra simile a funzionalità simili fornite da Core Data.Funzionalità offline iOS di Firebase vs Core Data

Come ho già detto, sto cercando di semplificare la sincronizzazione dei miei dati di base con il mio Firebase. Come differiscono i due (se non lo sono per il mio caso)? Più specificamente, Firebase offline fornirà effetti simili? Le mie intenzioni sono per un'app per utente singolo, non è necessario supportare più utenti contemporaneamente sulla stessa app. Ho bisogno di mantenere i dati in modo che gli utenti possano accedere ai loro dati offline e tra sessioni di app/riavvii.

+2

La risposta qui dipende in qualche modo dal fatto che il progetto sia un utente singolo o più utenti. Ad esempio, CoreData è davvero una tecnologia per utente singolo: non è davvero eccezionale quando si desidera condividere dati di aggiornamento in tempo reale con altri utenti (sì, è possibile ricevere notifiche push ma è diverso dall'aggiornamento in tempo reale). Firebase d'altra parte può fare entrambe le cose - utente singolo o migliaia di utenti che lavorano con lo stesso set di dati. Puoi aggiornare la tua domanda con maggiori dettagli sul tipo di utilizzo della tua app? (Utente singolo, multiutente, perché è necessario lo storage offline e online) – Jay

+0

@ Jay, ho aggiornato la domanda. – nodebase

risposta

11

Lavoro in Firebase e una volta ho provato a fare la stessa cosa.

Le funzionalità offline di Firebase rendono l'uso di CoreData un po 'superfluo. La modalità offline di Firebase gestisce molte delle complessità, come la gestione offline dell'autenticazione e la sincronizzazione dopo essere offline per un lungo periodo di tempo.

Potrebbe essere utile avere un wrapper attorno a CoreData se si desidera veramente utilizzare i due insieme. Tuttavia, ho scoperto che finisce per essere più complicato di quanto valga davvero.

+1

Attualmente stiamo valutando le funzionalità offline di Firebase per i set di dati di grandi dimensioni (~ 20k records) e l'ho trovato un po 'lento. I dati di base potrebbero gestirlo meglio ma non l'abbiamo ancora provato poiché non vogliamo ottenere l'intero stack troppo complicato. Qualche parola su questo? – Matt

+1

Ciao David, mi trovo nella stessa situazione di @Matt e mi sto chiedendo le prestazioni offline per dataset di grandi dimensioni nella nuova versione di Firebase vs Core Data o Realm. qualche idea? – doovers

+1

Vorrei anche ricevere informazioni sulla modalità offline di FireBase. Ho letto da qualche parte che non va bene se l'app è offline da troppo tempo. Vorrei sincronizzare Coredata con Firebase. Cosa comporta questo? Forse utilizzare le funzionalità offline per la sincronizzazione della guida? – KorinW

9

Come risposta aggiuntiva ... Sia i dati principali che Firebase possono entrambi memorizzare i dati "offline". Hanno una persistenza dei dati e consentiranno al tuo codice di funzionare in modo trasparente offline all'utente.

Per scavare un po 'più a fondo, Core Data non ha una' modalità online '* (integrata) mentre, non appena Firebase ha una connessione - wham-o, tutti i tuoi dati offline sono ora online. (* CloudKit fornisce a CoreData l'online-ness)

Inoltre, Firebase ha aggiornamenti di dati in tempo reale, quindi se questo è ciò che ti serve Firebase è la strada da percorrere per tale funzionalità.

Quindi, per il tuo caso d'uso, come menziona David, stai duplicando la funzionalità off-line in molti modi, specialmente se si tratta di un singolo utente.

Se hai già installato CoreData & CloudKit, potrebbe non valere la pena anche il tempo di inserire Firebase nel progetto, in realtà dipende dall'ambito delle classi che stai creando.