gpt4 book ai didi

ios - 当文档从后端更改时如何触发 Couchbase 与 iOS 同步

转载 作者:行者123 更新时间:2023-11-30 13:48:12 24 4
gpt4 key购买 nike

我从 https://github.com/couchbaselabs/Grocery-Sync-iOS 克隆了一个项目。我已经在 Couchbase 管理中创建了 grocery-sync 存储桶。我使用 iPhone 模拟器添加了几个文档,它起作用了,因为这些文档确实出现在数据库中。但是,当我尝试更改文档的标题时,iOS 不会更新已更改文档的新标题。我尝试使用提供的 node.js 模块来更改此文档。下面是用于更改特定文档文本的node.js 代码。

var couchbase = require("couchbase");

// Connect to Couchbase Server

var cluster = new couchbase.Cluster('127.0.0.1');
var bucket = cluster.openBucket('grocery-sync', function(err) {
if (err) {
// Failed to make a connection to the Couchbase cluster.
throw err;
}

bucket.get('-v-bZh-EUrlr0_ev-rqC8br', function(err, result) {
if (err) {
// Failed to retrieve key
throw err;
}

console.log(doc);

var doc = result.value;

// Store a document

doc.text = "Random beer from Norway";

bucket.replace('-v-bZh-EUrlr0_ev-rqC8br', doc, function(err, result) {
if (err) {
// Failed to replace key
throw err;
}

console.log(result);

// Success!
process.exit(0);
});
});
});

node.js 代码确实有效,因为我可以看到数据库中的更改。但 iOS 应用程序没有更新任何更改。 kCBLReplicationChangeNotification 永远不会被调用。我尝试重新运行模拟器,该值仍然是旧值。那么当你更改现有文档时如何更新更改并使iOS更新它的新值呢?看来同步功能只能单向工作。

最佳答案

如果您希望将更改复制到 Couchbase Lite 实例,则必须通过同步网关。您不能直接在关联的存储桶中写入。

因此,推荐的方法是使用 Sync Gateway 的 REST API .

关于ios - 当文档从后端更改时如何触发 Couchbase 与 iOS 同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34649855/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com