You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Realm Device Sync写入自定义用户数据报无规则错误如何解决

问题根因

报错核心原因是Realm Device Sync的同步权限,和通过mongoClient直连Atlas集群的数据访问权限是两套完全独立的配置。你目前只配置了Sync同步相关的权限,没有给mongodb-atlas数据服务下的UserAPI.Users集合配置对应访问规则,所以插入请求直接被服务端拦截。

解决步骤

  • 打开Atlas App Services控制台,进入你当前使用的应用,在左侧菜单栏找到「Data Access」分类下的「Rules」入口(注意不是Device Sync菜单里的Permissions配置页)
  • 在规则页点击「Add collection」新增集合规则,按以下参数填写:
    • 关联集群选择mongodb-atlas
    • 数据库名输入UserAPI,集合名输入Users
    • 权限模板优先选择Users can only read and write their own data快速验证,后续可根据需求收紧权限
    • 字段匹配规则设置为:文档_id字段等于认证用户的id字段,和你代码里插入数据时"_id": AnyBSON(user.id)的逻辑完全对应
  • 保存规则后等待1~2分钟让配置分发生效,再重新测试登录写入流程即可

额外优化点

  • 自定义用户数据集合不需要加入Realm Sync的同步分区配置,这类数据由App Services直接管理,加入同步规则反而可能引发权限冲突
  • 你当前的代码在插入自定义数据成功后,没有主动刷新用户自定义数据缓存,需要在插入成功的回调里调用user.refreshCustomData(),否则后续读取user.customData仍然会是空值
  • 如果配置规则后依然报错,回到「Custom User Data」配置页,确认选中的集群、数据库、集合名称和你配置规则的UserAPI.Users完全一致,用户ID关联字段选择_id

内容的提问来源于stack exchange,提问作者grandsirr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 04:01:14