【问题标题】:PouchDB and React-Native not replicating .to() but .from() is workingPouchDB 和 React-Native 不复制 .to() 但 .from() 正在工作
【发布时间】:2019-07-11 01:54:21
【问题描述】:

由于某些原因,在我的应用程序上创建的文档没有显示在我的远程 couchdb 数据库中。

我正在使用以下

import PouchDB from 'pouchdb-react-native'

let company_id = await AsyncStorage.getItem('company_id');
let device_db = new PouchDB(company_id, {auto_compaction: true});
let remote_db = new PouchDB('https://'+API_KEY+'@'+SERVER+'/'+company_id, {ajax: {timeout: 180000}});

device_db.replicate.to(remote_db).then((resp) => {

    console.log(JSON.stringify(resp));
    console.log("Device to Remote Server - Success");
    return resp;

}, (error) => { 

  console.log("Device to Remote Server - Error");
  return false; 

});

我得到一个成功的响应响应:

{
  "ok":true,
  "start_time":"2018-05-17T15:19:05.179Z",
  "docs_read":0,
  "docs_written":0,
  "doc_write_failures":0,
  "errors":[

  ],
  "last_seq":355,
  "status":"complete",
  "end_time":"2018-05-17T15:19:05.555Z"
}

当我转到远程数据库时,能够在应用程序上搜索和抓取的 document_id 不显示。

  • 有什么我没有考虑到的吗?
  • 我可以做些什么来检查为什么会发生这种情况?
  • 当我在 Ionic 中使用相同的脚本编写方法时,当我切换到 React-Native 时,我发现情况确实如此。

注意:当我执行.from() 并从远程获取数据到设备时,我得到了数据。出于某种原因,它只是没有推出数据

【问题讨论】:

  • 这个问题你解决了吗?

标签: javascript react-native couchdb pouchdb pouchdb-adapter-localstorage


【解决方案1】:

“我可以做些什么来检查为什么会发生这种情况?”

我会尝试按照here 的说明打开调试。

PouchDB.debug.enable('*');

这应该允许您在浏览器的 JavaScript 控制台中查看调试消息。

【讨论】:

  • 我很欣赏这种洞察力,但我没有看到任何异常,但是在日志中我没有看到我知道存在的文档 ID。从我上面的代码中,如果我的设备上有一个可以.get() 的文档 ID,有没有办法查看为什么它没有被推送?
  • 也许尝试从干净的客户端数据库?从一开始,您应该会看到客户端站点调用远程端的POST _bulk_docs 端点,直到所有文档都被复制。您还应该看到正在写入的_local/x 检查点文件。可能 PouchDB “认为”它是最新的,因为检查点文件告诉它它没有要复制的更改?
  • 我根本没有看到_local/x 检查点。嗯,好吧,我会试试这个,但我现在有文件需要保留,如果问题只能通过删除我需要的数据来解决,这有点令人担忧:\ 如果我从云复制到设备,请在设备上创建文档,然后将设备复制到云端。这会是个问题吗?
猜你喜欢
  • 1970-01-01
  • 2016-06-20
  • 1970-01-01
  • 2018-05-25
  • 2018-09-28
  • 1970-01-01
  • 1970-01-01
  • 2019-08-06
  • 2022-10-12
相关资源
最近更新 更多