2014-04-17 12 views
5

C'è qualche supporto per "Canali" di Couchbase Sync Gateway in Pouch DB? Mi piacerebbe essere in grado di avere usi vedere un sottoinsieme dei dati complessivi e se creano nuovi dati per poter condividere con chi li condividono.Sync Gateway "Canali" in PouchDB

È possibile con PouchDB? O dovrei interagire direttamente con il server o usare couchbase lite per dispositivi mobili?

risposta

3

PouchDB è modellato su CouchDB, che non ha il concetto di canali, quindi non è prevista l'implementazione in PouchDB.

Tuttavia, un modo semplice per risolvere il problema è sincronizzare PouchDB con un CouchDB, quindi sincronizzarlo con Couchbase Sync Gateway. Il motivo per cui hai bisogno di CouchDB come intermediario è che ci sono alcuni problemi con la sincronizzazione diretta di PouchDB < -> Couchbase Sync Gateway, anche se si spera che dovrebbero essere risolti presto (vedi ad esempio this e this).

2

Ecco la soluzione per far funzionare il client sacchetto db con Couchbase Sync Gateway su canali dell'utilizzatore:

var sync = function() { 
    var opts = { 
     live: true, 
     retry: true, 
     //-- from here 
     filter: "sync_gateway/bychannel", 
     query_params: { 
      "channels": channels 
     } 
     //-- to here 
    }; 

    database.sync(syncServer, opts); 
} 

la chiave qui è semplicemente passare il query_params filtro & allo stesso modo, il Sync Gateway ha comunque la capacità di comprendere questo filtro.

+0

Cosa succede se un canale su un utente cambia? – jedi

+0

@Jedi: Avrà lo stesso comportamento di Couchbase Lite, in cui il database locale inizierà a ricevere i dati assegnati per i nuovi canali, ma in questo caso si avranno ancora i documenti precedentemente sincronizzati che non sono desiderati. Quindi, per mantenere pulito e ordinato ciò che facciamo è pulire il database locale e la risincronizzazione che otterranno solo i nuovi dati dei canali. –