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

如何配置Realm Sync权限允许用户访问名称以其ID开头的动态分区

问题解决方案

你的需求完全可以实现,之前配置失败的核心原因是Realm的权限表达式不会对$regex字段内的模板变量(如%%user.id)做自动插值,你写的正则实际是在匹配字面量以%%user.id开头的分区,自然无法通过校验。

正确的同步权限配置

直接把读写权限替换为以下JSON即可:

{
  "$expr": {
    "$regexMatch": {
      "input": "%%partition",
      "regex": {
        "$concat": ["^", "%%user.id"]
      }
    }
  }
}

规则说明

  • 用$expr显式声明使用MongoDB聚合表达式语法,适配变量解析需求
  • 用$regexMatch操作符拆分input(待匹配的分区值)和regex(正则规则)两个参数,避免变量嵌套在正则字符串中无法解析的问题
  • 用$concat把前缀匹配符^和用户ID变量%%user.id拼接成完整的正则规则,此时%%user.id会正常解析为当前请求用户的实际ID
  • 如果需要匹配其他自定义前缀,比如config_${用户ID}格式的分区,只需要修改$concat的内容即可,示例:["^config_", "%%user.id"]

注意事项

  • 不需要使用/^xxx/格式的正则字面量写法,Realm的权限JSON配置仅支持字符串格式的正则规则
  • 完全等于用户ID的分区名符合^用户ID的匹配规则,测试时可以正常通过校验,不会再报206权限错误
  • 如果需要同时兼容其他固定分区的权限,可以用$or操作符把多个匹配规则组合起来

内容的提问来源于stack exchange,提问作者Ian Bailey-Mortimer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 12:51:03