提交 3c297dc7 编写于 作者: 雪洛's avatar 雪洛

docs: clientDB

上级 24f5a2af
...@@ -1043,7 +1043,7 @@ db.collection('order') ...@@ -1043,7 +1043,7 @@ db.collection('order')
action的作用是在执行前端发起的数据库操作时,额外触发一段云函数逻辑。它是一个可选模块。 action的作用是在执行前端发起的数据库操作时,额外触发一段云函数逻辑。它是一个可选模块。
当一个前端操作数据库的方式不能完全满足需求,仍然同时需要在云端再执行一些云函数时,就在前端发起数据库操作时,通过db.action("someactionname")方式要求云端同时执行这个叫someactionname的action。还可以在权限规则内指定某些操作必须使用指定的action,比如`"action in ['action-a','action-b']"`,来达到更灵活的权限控制。 当一个前端操作数据库的方式不能完全满足需求,仍然同时需要在云端再执行一些云函数时,就在前端发起数据库操作时,通过db.action("someactionname")方式要求云端同时执行这个叫someactionname的action。还可以在权限规则内指定某些操作必须使用指定的action,比如`"action in ['action-a','action-b']"`,来达到更灵活的权限控制。**action方法只能紧跟在db之后**
如果使用`<uni-clientdb>组件`,该组件也有action属性,设置action="someactionname"即可。 如果使用`<uni-clientdb>组件`,该组件也有action属性,设置action="someactionname"即可。
......
...@@ -729,27 +729,26 @@ action云函数中记录日志的代码,此处省略。 ...@@ -729,27 +729,26 @@ action云函数中记录日志的代码,此处省略。
例如有个论坛,要求用户积分大于100分才可以发帖。那么帖子表的create权限应该配成: 例如有个论坛,要求用户积分大于100分才可以发帖。那么帖子表的create权限应该配成:
```json ```json
// 使用模板字符串语法拼接产生`database.表名.记录ID`形式字符串
"create": get(`database.uni-id-users.${auth.uid}`).score > 100" "create": get(`database.uni-id-users.${auth.uid}`).score > 100"
``` ```
使用get方法时需要注意get方法的参数必须是唯一确定值,例如schema配置的get权限如下: 使用get方法时需要注意get方法的参数必须是唯一确定值,例如schema配置的get权限如下:
```json ```json
// 这句的含义是,本次查询where条件内传入的shop_id需要满足以下条件:shop表内_id为此shop_id的记录的owner字段等于当前用户uid
"get(`database.shop.${doc.shop_id}`).owner == auth.uid" "get(`database.shop.${doc.shop_id}`).owner == auth.uid"
``` ```
前端js如下: 前端js如下:
```js ```js
// 此条件内doc.shop_id只能是'123123',可以通过get(`database.shop.${doc.shop_id}`)获取数据来进行权限验证 // 此条件内doc.shop_id只能是'123123',可以通过get(`database.shop.${doc.shop_id}`)获取shop表内_id为123123的记录验证其owner是否等于当前用户uid
db.collection('street').where("shop_id=='123123'").get() db.collection('street').where("shop_id=='123123'").get()
// 此条件内doc.shop_id可能是'123123'也可能是'456456',`"get(`database.shop.${doc.shop_id}`).owner == auth.uid"`会直接返回false不会获取数据进行验证 // 此条件内doc.shop_id可能是'123123'也可能是'456456',`"get(`database.shop.${doc.shop_id}`).owner == auth.uid"`会直接返回false不会获取shop表数据进行验证
db.collection('street').where("shop_id=='123123 || shop_id=='456456'").get() db.collection('street').where("shop_id=='123123 || shop_id=='456456'").get()
``` ```
### 前端表单生成系统@autocode ### 前端表单生成系统@autocode
`DB Schema`里有大量的信息,有了这些信息,前端将无需自己开发表单维护界面,uniCloud可以自动生成新增数据、修改数据的表单页面。 `DB Schema`里有大量的信息,有了这些信息,前端将无需自己开发表单维护界面,uniCloud可以自动生成新增数据、修改数据的表单页面。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册