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

Appwrite用户权限配置:如何让用户仅查看自己的帖子并添加user_id属性

Appwrite新手指南:添加user_id属性+配置用户仅看自身帖子权限

一、给posts文档添加user_id属性

  • 打开Appwrite控制台,进入你的项目,找到「数据库」模块
  • 选中posts集合,切换到「属性」标签
  • 点击「添加属性」,按以下设置:
    • 属性ID:user_id
    • 类型:字符串(因为Appwrite用户ID是字符串格式)
    • 建议勾选「必填」,保证每个帖子都绑定用户
  • 保存即可

如果用API创建文档,直接把当前登录用户的ID作为user_id字段传入,示例(JS SDK):

databases.createDocument(
  '[你的数据库ID]',
  '[posts集合ID]',
  ID.unique(),
  {
    title: '我的第一篇帖子',
    content: '内容示例',
    user_id: appwriteAccount.$id // 当前登录用户的ID
  }
);

二、配置用户仅查看自身帖子的权限

方法1:创建文档时手动设置权限

创建帖子时,同时给文档添加权限,只允许当前用户读写:

databases.createDocument(
  '[你的数据库ID]',
  '[posts集合ID]',
  ID.unique(),
  {
    title: '我的帖子',
    content: '内容',
    user_id: appwriteAccount.$id
  },
  [
    Permission.read(Role.user(appwriteAccount.$id)), // 仅该用户可读
    Permission.write(Role.user(appwriteAccount.$id)) // 仅该用户可修改/删除
  ]
);

方法2:用集合规则批量控制(更高效)

不想每次创建都写权限代码?直接给posts集合加规则:

  • 进入posts集合的「权限」标签,点击「添加规则」
  • 选「文档权限」,权限类型设为「读取」,匹配条件选:user_id 等于 $user.id($user.id是Appwrite内置变量,指当前登录用户ID)
  • 同样可以添加「写入」权限的规则,确保用户只能改自己的帖子
  • 保存后,所有新创建的文档都会自动应用这个规则,用户只能看到自己user_id匹配的帖子

提示:如果是已存在的旧文档,需要手动补全user_id字段,或者重新设置权限,新规则才会对它们生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 07:46:05