【问题标题】:How to store android app data to couchbase server with couchbase lite如何使用 couchbase lite 将 android 应用程序数据存储到 couchbase 服务器
【发布时间】:2018-02-03 15:02:00
【问题描述】:

我需要 nosql 数据库,所以我使用 couchbase lite 来存储数据。我不知道我是否需要sync_gateway,如果需要,如何制作sync_gateway_config.json 文件以将数据从移动应用程序存储到couchbase 服务器?

这是经理

try {
    manager = new Manager(new AndroidContext(getApplicationContext()),  
          Manager.DEFAULT_OPTIONS);
    Manager.enableLogging("Sync", Log.VERBOSE);

    } catch (IOException e) {
         e.printStackTrace();
    }

try {
    database = manager.getDatabase("app");
} catch (CouchbaseLiteException e) {
    e.printStackTrace();
}

这是文档

地图属性 = new HashMap(); properties.put("p1x", p1[0]); properties.put("p1y", p1[1]); properties.put("p2x", p2[0]); properties.put("p2y", p2[1]); properties.put("p3x", p3[0]); properties.put("p3y", p3[1]); properties.put("x", finalX); properties.put("y", finalY); // 创建一个新文档 文档文档 = database.createDocument(); // 将文档保存到数据库 尝试 { document.putProperties(属性); } 捕捉(CouchbaseLiteException e){ e.printStackTrace(); } // 记录文档 ID(由数据库生成) // 和属性 Log.d("app", String.format("文档 ID :: %s", document.getId())); Log.d("app", String.format("坐标 x : %s %s , 坐标 y : %s %s , 坐标 z : %s %s , finalx : %s finaly : %s", document.getProperty(String.valueOf("p1x")), document.getProperty(String.valueOf("p1y")), document.getProperty(String.valueOf("p2x")), document.getProperty(String.valueOf("p2y")), document.getProperty(String.valueOf("p3x")), document.getProperty(String.valueOf("p3y")), document.getProperty(String.valueOf("x")), document.getProperty(String.valueOf("y")))); 网址网址 = 空; 尝试 { url = new URL("http://127.0.0.1:8091/wifi"); } 捕捉(MalformedURLException e){ e.printStackTrace(); } 复制推送 = database.createPushReplication(url); 复制 pull = database.createPullReplication(url); push.setContinuous(true); 拉.setContinuous(true);

同步网关配置文件

{ “数据库”:{ “D b”: { “桶”:“wifi”, “用户名”:“管理员”, "密码": "adminadmin", "服务器": "http://localhost:8091", “enable_shared_bucket_access”:是的, “import_docs”:“连续” } } } 在此处输入代码

【问题讨论】:

  • 你需要同步网关才能将数据发送到外部服务器,是的......文档的哪些部分不清楚?
  • 请不要向 cmets 添加代码。在您的问题下方找到编辑链接,然后适当地格式化代码

标签: android database couchbase couchbase-sync-gateway


【解决方案1】:

是的,您需要 Sync Gateway 才能将 Couchbase Lite 与 Couchbase Server 连接起来。

在您的代码中,我看不到您实际开始复制的位置。例如,您需要拨打pull.start();

您的同步网关文件看起来很合理。 Sync Gateway 发行版附带几个示例配置文件。如果您遇到问题,请查看这些内容。

还有一点。您将复制端点指定为 127.0.0.1。在 Android 上,这是指设备本身。如果您在模拟器中运行,则需要使用该模拟器的专用地址。如果您在设备上进行测试,则需要执行adb reverse tcp:4984 tcp:4984 之类的操作来设置设备和您的开发机器之间的映射(假设这是运行 Sync Gateway 的地方)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-18
    • 1970-01-01
    • 1970-01-01
    • 2018-06-30
    • 1970-01-01
    相关资源
    最近更新 更多