clientDB配合Schema查询数据使用总结(一)

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
虽然代码编写在客户端,但环境变量会在云端运算,所以也不能在客户端作为数据结果显示出来

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注