2015-04-04 14 views

Antwort

1

PouchDB ist für den Browser gebaut, also könnte es wahrscheinlich mit ein wenig Aufwand auf React Native funktionieren.

Haben Sie gesehen https://github.com/almost/react-native-sqlite?

+0

Ja, ich gesehen habe. Es ist kein Dokumentenspeicher. – mrded

+0

Darf ich fragen, was Sie mit einem Doc-Store tun können, den Sie mit SQLite nicht ausführen können? –

+1

Speichern Sie unstrukturierte Daten und können Sie problemlos Sammlungen dieser Daten durchsuchen? – Moonwalker

6

Sie können möglicherweise asyncstorage-down mit PouchDB verwenden. Normalerweise ist the method for using LevelDOWN adapters in Node.js etwa so:

var PouchDB = require('pouchdb'); 
var db = new PouchDB('mydb', {db: require('asyncstorage-down')}) 

ich nicht getestet haben, though.

Bearbeiten: gut glücklich Sie; In letzter Zeit wurde eine Menge Arbeit darin investiert: pouchdb-async-storage. Erwarten Sie bald einen Blog-Post darüber, wie Sie das zum Laufen bringen können.

+1

Wird der Pouchdb-Async-Speicher noch beibehalten? Es sieht so aus, als ob es seit 6 Monaten kein Commit mehr gegeben hat. Ich denke ernsthaft darüber nach, dies in einem großen Maßstab zu verwenden, native App, aber bin ein wenig Angst vor dem Pouchdb/reagieren native Kompatibilitätsprobleme, die ich überall in den Netzen finde. – A2345sooted

+1

(Ich bin der ursprüngliche Autor.) Nein, es ist nicht super gepflegt. Wenn ich etwas Zeit habe, werde ich wahrscheinlich stattdessen die SQLite-Route gehen, dh https://github.com/nolanlawson/node-websql#custom-sqlite3-implementation kombiniert mit https://github.com/almost/react- native-sqlite (was eigentlich schon funktionieren könnte). – nlawson

0

Sie können PouchDB einfach auf SQLLite implementieren - es hat mehrere Konfigurationsmöglichkeiten. Sie benötigen möglicherweise ein SQLite-Plugin, damit es funktioniert. Ich habe das für Cordova in der Tat getan, und es hat ganz gut funktioniert. Ich glaube, dass PouchDB (das pures JavaScript ist und daher sofort für ReactNative verwendet werden kann) über einen Adapter verfügt, der mit dem voll ausgestatteten SQLite3-Plugin funktioniert.

Reagieren Mutter Version dieser Plugin hier verfügbar:

https://github.com/andpor/react-native-sqlite-storage

Der Original-Link Cordova-Plugin auf dem Projekt Github gefunden werden kann auch.

+0

Ich muss das zurücknehmen. Es scheint eine Reihe von Problemen mit der JS-Seite zu geben, die die PouchDB-basierte Lösung derzeit nicht durchführbar machen. – Moonwalker

+0

einige haben gerade ein React Native PouchDB-Modul auf npm veröffentlicht, was reals-native-sqlite-storage als Plugin verwendet. https://www.npmjs.com/package/react-native-pouchdb – Moonwalker

1

Ich hatte Probleme, PouchDB auf reaktiv-nativ zu bekommen, aber wollte SQLLite nicht installieren. Also baue ich einen Adapter für Async Storage.

GitHub npm

Es Polyfills die fehlenden Pakete für + eine Asynchron-Speicheradapter Basis auf "asyncstorage-down" React hinzugefügt. Richtig hilft das.

1

Ich habe versucht mit Stockulus 'async Speicheradapter (https://github.com/stockulus/pouchdb-react-native) hatte aber Probleme mit der Replikation auf einen Remote-CouchDB-Server.

Jetzt reagiere ich bin mit nativer SQLite Storage (https://github.com/andpor/react-native-sqlite-storage) und das PouchDB Maßarbeit Muster (https://pouchdb.com/2016/06/06/introducing-pouchdb-custom-builds.html) wie folgt aus:

'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 

Ich weiß, dass die globale hässlich ist. Wir haben gerade damit angefangen und die Replikation funktioniert besser. Wir mussten auch eine Menge Knoten-Zeug füllen. Dies wird von pouchdb-core verwendet, aber nicht als abhängigkeit in pouchdb-core angegeben. Würde gerne Feedback bekommen.

zur Zeit diese Pakete:

"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", 

Dank

Verwandte Themen