1.Schema写法
“permission”: {
// “read”: “doc.user_id == auth.uid && doc.article_status == 0 || doc.article_status == 1”,
// “create”: “auth.uid != null”,
// “update”: “doc.user_id == auth.uid”,
// “delete”: “doc.user_id == auth.uid”
// auth.uid != null 用户必须登录
// doc.user_id == auth.uid 用户只能看自己的文章
// doc.status==0 只读取发布状态的文章
“read”: “doc.article_status == 0 && auth.uid != null && doc.user_id == auth.uid”,
“create”: true,
“update”: true,
“delete”: true
},
2.前端写法clientDB(where条件)
<unicloud-db ref="udb" v-slot:default="{data, pagination, loading, hasMore, error}"
:where="`article_status==0 && user_id == $cloudEnv_uid`"
collection="opendb-news-articles" orderby="publish_date desc"
field="user_id,category_id,title,content,excerpt,article_status,comment_status,last_comment_user_id,avatar,publish_date,last_modify_date,mode">
这里的$cloudEnv_uid 是内置变量。不用再使用:where=”article_status==0 && user_id == '${uid}'
的方法在客户端拿了
clientDB
目前内置了3个变量可以供客户端使用,客户端并非直接获得这三个变量的值,而是需要传递给云端,云数据库在数据入库时会把变量替换为实际值。
HBuilderX 3.1.0及以上版本推荐写法
参数名 | 说明 |
---|---|
db.getCloudEnv(‘$cloudEnv_uid’) | 用户uid,依赖uni-id |
db.getCloudEnv(‘$cloudEnv_now’) | 服务器时间戳 |
db.getCloudEnv(‘$cloudEnv_clientIP’) | 当前客户端IP |