Sarebbe bello avere qualcosa di simile a PouchDB.Esistono archivi di documenti per reagire in modo nativo?
corrente di memorizzazione di valori-chiave (AsyncStorage
) non è assolutamente sufficiente per memorizzare i dati e query.
Sarebbe bello avere qualcosa di simile a PouchDB.Esistono archivi di documenti per reagire in modo nativo?
corrente di memorizzazione di valori-chiave (AsyncStorage
) non è assolutamente sufficiente per memorizzare i dati e query.
PouchDB è progettato per il browser, quindi potrebbe probabilmente funzionare su React Native con un piccolo sforzo.
Si può essere in grado di utilizzare asyncstorage-down con PouchDB. Normalmente the method for using LevelDOWN adapters in Node.js è in questo modo:
var PouchDB = require('pouchdb');
var db = new PouchDB('mydb', {db: require('asyncstorage-down')})
non ho ancora testato questo, però.
Edit: ben fortunati; un sacco di lavoro è stato messo in questo recentemente: pouchdb-async-storage. Aspettatevi presto un post sul blog su come farlo funzionare.
Lo storage pouchdb-async è ancora in fase di manutenzione? Sembra che non ci sia stato un commit in 6 mesi. Sto seriamente pensando di utilizzare questa app su larga scala per le app native, ma ho un po 'paura dei problemi di compatibilità nativa pouchdb/react che sto riscontrando in tutto il web. – A2345sooted
(Sono l'autore originale). No, non è super mantenuto. Se ho un po 'di tempo, probabilmente userò il percorso SQLite, cioè https://github.com/nolanlawson/node-websql#custom-sqlite3-implementation combinato con https://github.com/almost/react- nativo-sqlite (che potrebbe funzionare già, in effetti). – nlawson
È possibile implementare facilmente PouchDB su SQLLite, con diverse opzioni di configurazione. Potrebbe essere necessario un plugin SQLite per farlo funzionare. Ho fatto questo per Cordova e ha funzionato abbastanza bene. Credo che PouchDB (che è puro JavaScript e quindi possa essere utilizzato immediatamente per ReactNative) abbia un adattatore che funziona con il plugin completo di SQLite3.
Reagire versione nativa di questo plugin è disponibile qui:
https://github.com/andpor/react-native-sqlite-storage
L'originale collegamento plug-Cordova si possono trovare sul github progetto pure.
Devo riprenderlo. Sembra che ci sia una serie di problemi con la richiesta sul lato JS che rende la soluzione basata su PouchDB non fattibile al momento. – Moonwalker
alcuni hanno appena pubblicato un modulo React Native PouchDB su npm che utilizza react-native-sqlite-storage come plugin. https://www.npmjs.com/package/react-native-pouchdb – Moonwalker
ho avuto alcuni problemi ottenere PouchDB lavorare su reagire-nativa, ma non ha voluto installare SqlLite. Così costruisco un adattatore per l'archiviazione asincrona.
E polyfills i pacchetti mancanti per Reagire + Aggiunta una base adattatore asincrono bagagli su "asyncstorage-down". Correttamente ciò aiuta.
Ho provato a utilizzare l'adattatore di archiviazione asincrono di Stockulus (https://github.com/stockulus/pouchdb-react-native) ma ho avuto problemi con la replica su un server CouchDB remoto.
Ora sto usando Reagire nativo SQLite bagagli (https://github.com/andpor/react-native-sqlite-storage) e il modello di generazione personalizzata PouchDB (https://pouchdb.com/2016/06/06/introducing-pouchdb-custom-builds.html) come questo:
'use strict';
import PouchDB from 'pouchdb-core'
// POLYFILLS - adapted from https://github.com/pouchdb/pouchdb/issues/3787#issuecomment-234618747
global.Buffer = global.Buffer || require('buffer').Buffer;
global.atob = global.atob || require('atob');
global.btoa = global.btoa || require('btoa');
require('blob-polyfill');
import SQLite from 'react-native-sqlite-storage';
global.openDatabase = SQLite.openDatabase; // Expose for websql adapter
GLOBAL.openDatabase = SQLite.openDatabase;
PouchDB
.plugin(require('pouchdb-adapter-websql'))
.plugin(require('pouchdb-adapter-http'))
.plugin(require('pouchdb-replication'))
export default PouchDB
So che il mondiale è brutto. Abbiamo appena iniziato a utilizzarlo e la replica funziona meglio. Abbiamo anche dovuto riempire polivalenti un sacco di roba per i nodi. Questo è usato da pouchdb-core ma non specificato come dipendenza da pouchdb-core. Mi piacerebbe il feedback.
Attualmente utilizzando questi pacchetti:
"events": "^1.1.1",
"pouchdb-adapter-http": "6.0.6",
"pouchdb-adapter-websql": "6.0.6",
"pouchdb-core": "6.0.6",
"pouchdb-replication": "6.0.6",
"atob": "^2.0.3",
"blob-polyfill": "^1.0.20150320",
"btoa": "^1.1.2",
"buffer": "^5.0.0",
Grazie
Sì, ho visto. Non è un archivio di documenti. – mrded
Posso chiederti cosa puoi fare con un archivio doc che non puoi utilizzare con SQLite? –
Memorizza dati non strutturati ed è in grado di cercare facilmente attraverso raccolte di questi dati? – Moonwalker