Byłoby wspaniale mieć coś podobnego do PouchDB.Czy są jakieś miejsca przechowywania dokumentów na reakcję natywną?
Aktualny przechowywania klucz-wartość (AsyncStorage
) to zdecydowanie za mało, aby zapisać dane i zapytań.
Byłoby wspaniale mieć coś podobnego do PouchDB.Czy są jakieś miejsca przechowywania dokumentów na reakcję natywną?
Aktualny przechowywania klucz-wartość (AsyncStorage
) to zdecydowanie za mało, aby zapisać dane i zapytań.
PouchDB jest zbudowany w przeglądarce, więc może to prawdopodobnie działają na React Native przy odrobinie wysiłku.
Możesz być w stanie wykorzystać asyncstorage-down z PouchDB. Normalnie the method for using LevelDOWN adapters in Node.js jest tak:
var PouchDB = require('pouchdb');
var db = new PouchDB('mydb', {db: require('asyncstorage-down')})
Nie testowałem tego, choć.
Edit: dobrze masz szczęście; ostatnio włożono wiele pracy: pouchdb-async-storage. Oczekuj wkrótce bloga o tym, jak to działa.
Czy nadal przechowywane jest etui SSCHDB-async? Wygląda na to, że nie było żadnego zobowiązania w ciągu 6 miesięcy. Rozważam użycie tego na dużą skalę, reagując natywną aplikacją, ale trochę się boję problemów z kompatybilnością natywną, które znajduję w sieci. – A2345sooted
(Jestem oryginalnym autorem.) Nie, to nie jest super utrzymane. Jeśli mam trochę czasu, prawdopodobnie przejdę do trasy SQLite, np. Https://github.com/nolanlawson/node-websql#custom-sqlite3-implementation w połączeniu z https://github.com/almost/react- native-sqlite (który może po prostu zadziałać już, w rzeczywistości). – nlawson
Możesz łatwo wdrożyć PouchDB na górze na SQLLite - ma kilka opcji konfiguracji. Aby to zadziałało, możesz potrzebować wtyczki SQLite. Zrobiłem to dla Cordova w rzeczywistości i działało całkiem nieźle. Wierzę, że PouchDB (który jest czystym JavaScript i dlatego może być użyty po raz pierwszy w ReactNative) ma adapter, który działa z pełną funkcjonalną wtyczką SQLite3.
React Native wersję tej wtyczki jest dostępny tutaj:
https://github.com/andpor/react-native-sqlite-storage
Oryginalny Cordova Link wtyczki można znaleźć na github projektu, jak również.
Muszę to cofnąć. Wygląda na to, że istnieje problem z wymaganiami ze strony JS, który sprawia, że rozwiązanie oparte na PouchDB nie jest teraz możliwe. – Moonwalker
niektórzy właśnie opublikowali moduł Native PouchDB React na NPM, który używa magazynu-native-sqlite-storage jako wtyczki. https://www.npmjs.com/package/react-native-pouchdb – Moonwalker
Próbowałem używać asymetrycznego adaptera magazynowego Stockulus (https://github.com/stockulus/pouchdb-react-native), ale miałem problemy z replikacją na zdalny serwer CouchDB.
Teraz używam React natywną SQLite Storage (https://github.com/andpor/react-native-sqlite-storage) i PouchDB zwyczaj budowania wzorca (https://pouchdb.com/2016/06/06/introducing-pouchdb-custom-builds.html) tak:
'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
wiem globalna jest brzydki. Po prostu zaczęliśmy go używać, a replikacja działa lepiej. Musieliśmy także polyfillować kilka rzeczy w węźle. Jest on używany przez rdzeń pouchdb, ale nie jest określony jako zależność w rdzeniu pouchdb. Chciałbym feedback.
Obecnie za pomocą tych pakietów:
"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",
Dzięki
Tak, widziałem. To nie jest magazyn dokumentów. – mrded
Czy mogę zapytać, co możesz zrobić z magazynem dokumentów, którego nie możesz zrobić z SQLite? –
Przechowuj nieustrukturyzowane dane i łatwo przeszukiwać zbiory tych danych? – Moonwalker