Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
uni-app
提交
e61a500d
U
uni-app
项目概览
DCloud
/
uni-app
2 个月 前同步成功
通知
717
Star
38705
Fork
3642
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
7
列表
看板
标记
里程碑
合并请求
1
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-app
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
7
Issue
7
列表
看板
标记
里程碑
合并请求
1
合并请求
1
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
e61a500d
编写于
1月 29, 2021
作者:
雪洛
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
docs: uniCloud
上级
403821ca
变更
5
展开全部
隐藏空白更改
内联
并排
Showing
5 changed file
with
344 addition
and
107 deletion
+344
-107
docs/uniCloud/_sidebar.md
docs/uniCloud/_sidebar.md
+1
-0
docs/uniCloud/cf-functions.md
docs/uniCloud/cf-functions.md
+4
-3
docs/uniCloud/client-sdk.md
docs/uniCloud/client-sdk.md
+52
-0
docs/uniCloud/clientdb.md
docs/uniCloud/clientdb.md
+226
-100
docs/uniCloud/schema.md
docs/uniCloud/schema.md
+61
-4
未找到文件。
docs/uniCloud/_sidebar.md
浏览文件 @
e61a500d
...
...
@@ -25,6 +25,7 @@
*
[
云存储
](
uniCloud/storage.md
)
*
[
腾讯云自定义登录
](
uniCloud/authentication.md
)
*
[
腾讯云权限管理
](
uniCloud/policy-tcb.md
)
*
[
客户端sdk
](
uniCloud/client-sdk.md
)
*
[
uni-id用户体系
](
uniCloud/uni-id.md
)
*
扩展能力
*
[
uniCloud admin
](
uniCloud/admin.md
)
...
...
docs/uniCloud/cf-functions.md
浏览文件 @
e61a500d
## 简介
## 简介
@intro
云函数是运行在云端的
`JavaScript`
代码,和普通的
`Node.js`
开发一样,熟悉
`Node.js`
的开发者可以直接上手。
...
...
@@ -28,14 +28,15 @@ exports.main = async (event, context) => {
let
appid
=
context
.
APPID
// manifest.json中配置的appid
let
clientIP
=
context
.
CLIENTIP
// 客户端ip信息
let
clientUA
=
context
.
CLIENTUA
// 客户端user-agent
let
spaceInfo
=
context
.
CLIENTUUID
// 客户端uuid,同uni-app客户端getSystemInfo接口获取的uuid
let
spaceInfo
=
context
.
SPACEINFO
// 当前环境信息 {spaceId:'xxx',provider:'tencent'}
...
//其它业务代码
}
```
云函数url化的场景下无法获取
`context.OS`
、
`context.PLATFORM`
、
`context.APPID`
云函数url化的场景下无法获取
`context.OS`
、
`context.PLATFORM`
、
`context.APPID`
、
`context.CLIENTUUID`
>在云函数URL化的场景无法获取客户端平台信息,可以在调用依赖客户端平台的接口接口之前(推荐在云函数入口)通过修改context.PLATFORM手动传入客户端平台信息
>在云函数URL化的场景无法获取客户端平台信息,可以在调用依赖客户端平台的接口接口之前(推荐在云函数入口)通过修改context.PLATFORM手动传入客户端平台信息
供其他插件(如:uni-id)使用
例:
...
...
docs/uniCloud/client-sdk.md
0 → 100644
浏览文件 @
e61a500d
# uniCloud客户端sdk
uniCloud分为客户端和云端两部分,有些接口名称相同,参数也相近,在此列举客户端sdk内可以使用的接口/属性,避免混淆
## API
客户端API列表
|API |描述 |
|-- |-- |
|uniCloud.callFunction() |客户端调用云函数
[
详情
](
https://uniapp.dcloud.net.cn/uniCloud/cf-functions?id=clientcallfunction
)
|
|uniCloud.database() |客户端访问云数据库,获取云数据库对象引用
[
详情
](
https://uniapp.dcloud.net.cn/uniCloud/clientdb
)
|
|uniCloud.uploadFile() |客户端直接上传文件到云存储
[
详情
](
https://uniapp.dcloud.net.cn/uniCloud/storage?id=uploadfile
)
|
|uniCloud.getTempFileURL() |客户端获取云存储文件的临时路径
[
详情
](
https://uniapp.dcloud.net.cn/uniCloud/storage?id=gettempfileurl
)
|
|uniCloud.chooseAndUploadFile() |客户端选择文件并上传
[
详情
](
https://uniapp.dcloud.net.cn/uniCloud/storage?id=chooseanduploadfile
)
|
|uniCloud.getCurrentUserInfo() |获取当前用户信息
[
详情
](
https://uniapp.dcloud.net.cn/uniCloud/storage?id=client-getcurrentuserinfo
)
|
|uniCloud.init() |同时使用多个服务空间时初始化额外服务空间
[
详情
](
https://uniapp.dcloud.net.cn/uniCloud/init
)
|
### 获取当前用户信息@client-getcurrentuserinfo
新增于HBuilderX 3.1.0版本,通过解析客户端token获取用户信息,不会发送网络请求,
**注意这个仅仅是客户端接口,不校验token的合法性**
> 需要搭配uni-id使用并要求客户端必须将token存储在storage内的`uni_id_token`内
用法:
`uniCloud.getCurrentUserInfo()`
**响应参数**
| 字段 | 类型 | 必填| 说明 |
| --- | --- | --- | --- |
| uid | Number| 是 |当前用户uid |
| role | Array | 是 |用户角色列表 |
| permission| Array | 是 |用户权限列表,admin角色此数组为空|
未能获取用户信息时返回以下结果
```
js
{
uid
:
null
,
role
:
[],
permission
:
[]
}
```
## 属性
### 获取当前uniCloud实例的服务商
用法:
`uniCloud.config.provider`
访问此属性会返回
`tencent`
、
`aliyun`
分别代表腾讯云和阿里云
\ No newline at end of file
docs/uniCloud/clientdb.md
浏览文件 @
e61a500d
此差异已折叠。
点击以展开。
docs/uniCloud/schema.md
浏览文件 @
e61a500d
...
...
@@ -657,6 +657,58 @@ if (uni) {
}
```
#### fieldRules校验语句@field-rules
自
`HBuilderX 3.1.0`
起,支持再schema内配置fieldRules对数据进行校验。
fieldRules的写法等同JQL的where写法(也可以使用各种聚合操作符),参考:
[
clientDB where
](
uniCloud/clientdb.md?id=where
)
fieldRules内完整配置如下
```
js
{
"
fieldRules
"
:
[{
"
rule
"
:
"
end_date == null || end_date != null && create_date < end_date
"
,
// 校验规则
"
errorMessage
"
:
"
创建时间和结束时间不匹配
"
,
// 错误提示信息(仅在新增时生效,更新数据时不会提示此信息)
"
client
"
:
false
// 当前规则是否适用于客户端,目前此属性不生效,fieldRules不会在客户端校验数据,仅会在云端进行校验
}],
}
```
例:在todo表内可以使用fieldRules限制create_date小于end_date
```
json
{
"bsonType"
:
"object"
,
"required"
:
[
"title"
,
"create_date"
],
"fieldRules"
:
[{
"rule"
:
"end_date == null || end_date != null && create_date < end_date"
,
"errorMessage"
:
"创建时间和结束时间不匹配"
}],
"properties"
:
{
"title"
:
{
"bsonType"
:
"string"
,
"label"
:
"标题"
},
"create_date"
:
{
"bsonType"
:
"timestamp"
,
"label"
:
"创建时间"
},
"end_date"
:
{
"bsonType"
:
"timestamp"
,
"label"
:
"结束时间"
}
}
}
```
上述示例中,create_date为必填项只需限制,end_date存在时大于create_date即可
**注意**
-
新增/更新数据时会校验所有新增/更新字段相关联的fieldRules,如上述规则中,如果更新end_date字段或者create_date字段均会触发校验
-
新增数据时不需要查库进行校验,更新数据时需要进行一次查库校验(有多条fieldRules时也是一次)
#### errorMessage自定义错误提示@errormessage
数据不符合schema配置的规范时,无法入库,此时会报错。
...
...
@@ -744,7 +796,7 @@ errorMessage支持字符串,也支持json object。类型为object时,可定
在保存
`DB Schema`
时,如果发现服务空间下没有
`uni-id`
公共模块,会自动安装
`uni-id`
。如果服务空间已经存在
`uni-id`
,则不会再自动安装。此时需要注意及时升级
`uni-id`
,避免太老的
`uni-id`
有兼容问题。
#### 表级权限控制
#### 表级权限控制
@col-permission
表级控制,包括增删改查四种权限,分别称为:create、delete、update、read。(注意这里使用的是行业通用的crud命名,与操作数据库的方法add()、remove()、update()、get()在命名上有差异,但表意是相同的)
...
...
@@ -761,17 +813,22 @@ errorMessage支持字符串,也支持json object。类型为object时,可定
"read"
:
true
,
//
任何用户都可以读
"create"
:
false
,
//
禁止新增数据记录(admin权限用户不受限)
"update"
:
false
,
//
禁止更新数据(admin权限用户不受限)
"delete"
:
false
//
禁止删除数据(admin权限用户不受限)
"delete"
:
false
,
//
禁止删除数据(admin权限用户不受限)
"count"
:
false
//
禁止查询数据条数(admin权限用户不受限),新增于HBuilderX
3.1
.
0
},
"properties"
:
{
"_id"
:{},
"name"
:{},
"name"
:{},
"pwd"
:
{}
}
}
```
**关于count权限的说明**
-
在HBuilderX 3.1.0之前,count操作都会使用表级的read权限进行验证。HBuilderX 3.1.0及之后的版本,如果配置了count权限则会使用表级的read+count权限进行校验,两条均满足才可以通过校验
-
如果schema内没有count权限,则只会使用read权限进行校验
-
所有会统计数量的操作均会触发count权限校验
#### 字段级权限控制
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录