如何将Android应用数据通过Couchbase Lite存储至Couchbase Server?Sync Gateway相关疑问
关于Couchbase Lite是否需要Sync Gateway及配置文件编写指南
首先明确:如果你需要将移动端Couchbase Lite的数据同步到后端的Couchbase Server,那Sync Gateway是必须的——它是Couchbase移动生态里负责中间同步、权限控制、数据路由的核心组件,没有它的话,Couchbase Lite没法直接和Couchbase Server通信。
接下来给你一个基础可用的sync_gateway_config.json配置示例,我会逐段解释关键部分:
{ "log": ["*"], "databases": { "your-mobile-db": { "server": "http://localhost:8091", "bucket": "your-server-bucket", "username": "sync-gateway-user", "password": "your-secure-password", "sync": `function(doc, oldDoc) { // 同步规则:允许所有已认证用户同步所有文档 if (doc._deleted) { return true; } // 这里可以自定义更细的权限,比如只允许文档所有者同步 // if (doc.owner === ctx.user.name) { return true; } return true; }`, "users": { "GUEST": { "disabled": true }, "mobile-user-1": { "password": "user-password-1" } }, "allow_conflicts": false, "revs_limit": 20 } }, "interface": ":4984", "adminInterface": ":4985" }
关键配置项解释:
- log: 配置日志级别,
["*"]会输出所有日志,调试阶段很有用,生产环境可以调整为更严格的级别。 - databases: 定义要同步的数据库映射,
your-mobile-db是你移动端Couchbase Lite使用的数据库名称,要和客户端保持一致。- server: 后端Couchbase Server的REST API地址,默认是8091端口。
- bucket: 对应Couchbase Server里创建好的桶名称,确保这个桶已经存在。
- username/password: 需要在Couchbase Server里创建一个有桶读写权限的用户,用来让Sync Gateway连接服务器。
- sync: 同步函数,用来控制哪些文档可以被同步。示例里是宽松的规则,你可以根据业务需求修改,比如限制只有文档的创建者才能同步、过滤特定类型的文档等。
- users: 定义移动端可以用来认证的用户,
GUEST禁用是为了防止匿名访问,你可以添加多个用户账号,或者集成第三方认证(比如JWT)。
- interface: Sync Gateway提供给移动端的同步端口,默认4984,客户端Couchbase Lite要连接这个端口。
- adminInterface: 管理端口,默认4985,用来做配置修改、查看状态等,生产环境要注意限制访问权限。
使用注意事项:
- 确保Couchbase Server已经启动,并且创建了对应的桶和授权用户。
- 移动端Couchbase Lite初始化时,要指定Sync Gateway的地址(比如
http://your-gateway-ip:4984/your-mobile-db)和对应的用户凭证。 - 如果需要更复杂的权限控制、数据过滤或者集群部署,可以扩展这个配置,比如添加JWT认证、集群节点配置等。
内容的提问来源于stack exchange,提问作者Varis Bhalala
相关产品推荐
相关产品推荐

