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

update: 调整uniCloud文档

上级 9bf92a40
* [什么是uniCloud](uniCloud/README.md)
* [快速上手](uniCloud/quickstart.md)
* 服务端sdk
* [身份认证](uniCloud/cf-authentication.md)
* [云函数](uniCloud/cf-functions.md)
* [数据库](uniCloud/cf-database.md)
* [云存储](uniCloud/cf-storage.md)
* [身份认证](uniCloud/cf-authentication.md)
* 客户端sdk
* [初始化](uniCloud/init.md)
* [云函数](uniCloud/functions.md)
......
**本章内容仅针对腾讯云开发,阿里侧暂不支持**
## 获取登录对象
**腾讯云侧必须以任意登录方式登录之后才可以访问云端资源。开发者在控制台开启匿名登录之后,可以在客户端调用匿名登录来获取访问云端资源的权限**
## uniClient.auth()
获取登录对象
**示例代码**
......@@ -9,13 +13,12 @@ const uniClient = uniCloud.init({
spaceId: 'xxxx-yyy'
});
let auth = uniClient.auth()
const auth = uniClient.auth()
```
## auth.signInAnonymously()
## 获取登录状态
开发者可以通过 `getLoginState()` 来获取当前的登录状态,调用 `getLoginState()` 后,SDK 会识别本地是否有登录状态,如果有,则会尝试刷新登录状态,若刷新登录状态成功,则会返回新的登录状态,否则返回 `undefined`
进行匿名登录,详细描述参考[匿名登录](#匿名登录)
**示例代码**
......@@ -23,7 +26,35 @@ let auth = uniClient.auth()
const uniClient = uniCloud.init({
spaceId: 'xxxx-yyy'
});
uniClient.auth().getLoginState().then(loginState => {
const auth = uniClient.auth()
auth.signInAnonymously()
```
## auth.signInWithTicket()
进行自定义登录,详细描述参考[自定义登录](#自定义登录)
**示例代码**
```js
auth.signInWithTicket('YourTicket').then(() => {
// 获取用户信息
return auth.getUserInfo()
})
.then(userInfo => {
//...
})
```
## auth.getLoginState()
开发者可以通过 `getLoginState()` 来获取当前的登录状态,调用 `getLoginState()` 后,SDK 会识别本地是否有登录状态,如果有,则会尝试刷新登录状态,若刷新登录状态成功,则会返回新的登录状态,否则返回 `undefined`
**示例代码**
```js
auth.getLoginState().then(loginState => {
if (loginState) {
// 登录态有效
} else {
......@@ -32,6 +63,29 @@ uniClient.auth().getLoginState().then(loginState => {
})
```
## auth.getUserInfo()
任何方式登录成功后,可以调用 `getUserInfo` 获得用户的身份信息。
**响应参数**
|字段 |类型 |是否必备 |说明 |
|:-: |:-: |:-: |:-: |
|uid |string |是 |用户在云开发的唯一ID |
<!-- |customUserId |string |否 |用户使用自定义登录传入的用户Id | -->
**示例代码**
```js
auth.signInWithTicket('YourTicket').then(() => {
// 获取用户信息
return auth.getUserInfo()
})
.then(userInfo => {
//...
})
```
## 自定义登录
`uniCloud`允许开发者使用特定的登录凭据`Ticket`对用户进行身份认证。开发者可以使用`服务端 SDK`来创建`Ticket`,并且将`token`传入到应用内,然后调用`signInWithTicket()`获得登录态。
......@@ -100,32 +154,6 @@ auth.signInWithTicket(ticket).then(() => {
})
```
## 获取用户信息
任何方式登录成功后,可以调用 `getUserInfo` 获得用户的身份信息。
**响应参数**
|字段 |类型 |是否必备 |说明 |
|:-: |:-: |:-: |:-: |
|uid |string |是 |用户在云开发的唯一ID |
|customUserId |string |否 |用户使用自定义登录传入的用户Id |
**示例代码**
```js
const uniClient = uniCloud.init({
spaceId: 'xxxx-yyy'
});
const auth = uniClient.auth()
auth.signInWithTicket('YourTicket').then(() => {
// 获取用户信息
return auth.getUserInfo()
})
.then(userInfo => {
//...
})
```
## 匿名登录
uniCloud允许开发者使用匿名登录的方式进行静默授权,可以避免强制登录。在匿名状态下可正常的调用uniCloud的资源,开发者同时可以配合安全规则针对匿名用户制定对应的访问限制。
......@@ -137,10 +165,6 @@ uniCloud允许开发者使用匿名登录的方式进行静默授权,可以避
### 客户端进行匿名登录
```js
const uniClient = uniCloud.init({
spaceId: 'xxxx-yyy'
});
const auth = uniClient.auth();
await auth.signInAnonymously().catch(err=>{
// 登录失败会抛出错误
});
......
## 获取 auth 的引用
**本章内容仅针对腾讯云,阿里云暂不支持**
### uniCloud.auth()
获取`auth`的引用
```js
const auth = uniCloud.auth();
```
#### 获取用户信息
### auth.getUserInfo()
获取用户信息
```js
const {
......@@ -13,6 +19,29 @@ const {
} = auth.getUserInfo()
```
## 云函数生成登录凭证
### auth.getClientIP()
获取客户端IP地址
```js
const IP = auth.getClientIP()
```
### auth.createTicket(String customUserId, Object createTicketOptions)
开发者可以使用云函数创建登录凭证,提供给客户端进行登录操作。[详见](uniCloud/authentication.md#自定义登录)
**createTicketOptions参数说明**
|参数名 |类型 |必填 |默认值 |说明 |平台差异说明 |
|:- |:- |:- |:- |:- |:- |
|refresh|Number |否 |3600000|token刷新间隔|- |
```js
let customUserId = '123456';
const ticket = auth.createTicket(customUserId, {
refresh: 10 * 60 * 1000 // 每十分钟刷新一次登录态, 默认为一小时
});
// 然后把 ticket 发送给客户端
```
......@@ -4,6 +4,14 @@
const db = uniCloud.database();
```
## 新增集合
如果集合已存在,则报错。
```
db.createCollection(collectionName)
```
## 获取集合的引用
```js
......
## 执行函数
## uniCloud.callFunction(Object callFunctionOptions)
- 接口名称:callFunction(object)
- 接口功能:远程调用云函数。
云函数中调用云函数。**目前仅腾讯云支持**
### 请求参数
**callFunctionOptions参数说明**
| 字段 | 类型 | 必填| 说明 |
| --- | --- | --- | --- |
......@@ -11,7 +10,7 @@
| data | object | 否 | 云函数参数。|
| callback| function| 否 | 回调函数。 |
### 响应参数
**响应参数**
| 字段 | 类型 | 必填| 说明 |
| --- | --- | --- | --- |
......@@ -20,7 +19,7 @@
| result | object| 否 | 云函数执行结果。 |
| requestId | string| 否 | 请求序列号,用于错误排查。|
### 示例代码
**示例代码**
```javascript
//promise
......
## 上传文件
- 接口名称: uploadFile
- 接口功能:上传文件至云开发存储服务。
- 阿里云暂不支持此接口
## uniCloud.uploadFile(Object uploadFileOptions)
### 请求参数
上传文件至云开发存储服务。**目前仅腾讯云支持此接口**
| 字段 | 类型 | 必填 | 说明|
| --- | --- | --- | --- |
| cloudPath | string | 是 | 文件的绝对路径,包含文件名。例如 foo/bar.jpg、foo/bar/baz.jpg 等。[查看详情](https://cloud.tencent.com/document/product/436/13324) 。 |
| fileContent | fs.ReadStream | 是 | buffer或要上传的文件 [可读流](https://nodejs.org/api/stream.html#stream_class_stream_readable) 。|
**uploadFileOptions参数说明**
### 响应参数
| 字段 | 类型 | 必填| 说明 |
| --- | --- | --- | --- |
| cloudPath | string | 是 | 文件的绝对路径,包含文件名。例如 foo/bar.jpg、foo/bar/baz.jpg 等。 |
| fileContent | fs.ReadStream | 是 | buffer或要上传的文件 [可读流](https://nodejs.org/api/stream.html#stream_class_stream_readable) 。 |
| 字段 | 类型 | 必填 | 说明|
| --- | --- | --- | --- |
| code | string | 否 | 状态码,操作成功则不返回。 |
| message | string | 否 | 错误描述。 |
| fileID | fileID | 是 | 文件唯一 ID,用来访问文件,建议存储起来。 |
| requestId | string | 否 | 请求序列号,用于错误排查。 |
**响应参数**
| 字段 | 类型 | 必填| 说明 |
| --- | --- | --- | --- |
| code | string| 否 | 状态码,操作成功则不返回。 |
| message | string| 否 | 错误描述。 |
| fileID | fileID| 是 | 文件唯一 ID,用来访问文件,建议存储起来。 |
| requestId | string| 否 | 请求序列号,用于错误排查。 |
### 示例代码
**示例代码**
```javascript
const fs = require("fs");
......@@ -30,41 +29,41 @@ let result = await uniCloud.uploadFile({
});
```
## 获取文件下载链接
- 接口名称:getTempFileURL
- 接口功能:获取已上传至云开发的文件的访问链接。
## uniCloud.getTempFileURL(Object getTempFileURLOptions)
### 请求参数
获取文件下载链接,**目前仅腾讯云支持**
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| fileList | &lt;Array&gt;.string | 是 | 要下载的文件 ID 组成的数组。 |
**getTempFileURLOptions参数说明**
fileList
| 字段 | 类型 | 必填| 说明 |
| --- | --- | --- | --- |
| fileList| &lt;Array&gt;.string| 是 | 要下载的文件 ID 组成的数组。|
| 字段 | 类型 | 必填 | 说明
| --- | --- | --- | --- |
| fileID | string | 是 | 文件 ID。 |
| maxAge | Integer | 是 | 文件链接有效期。 |
**fileList字段**
### 响应参数
| 字段 | 类型 | 必填| 说明 |
| --- | --- | --- | --- |
| fileID| string | 是 | 文件 ID。 |
| maxAge| Integer | 是 | 文件链接有效期。|
| 字段 | 类型 | 必填 | 说明
| --- | --- | --- | --- |
| code | string | 否 | 状态码,操作成功则为 SUCCESS。 |
| message | string | 否 | 错误描述。 |
| fileList | &lt;Array&gt;.object | 否 | 存储下载链接的数组。 |
| requestId | string | 否 | 请求序列号,用于错误排查。 |
**响应参数**
fileList
| 字段 | 类型 | 必填| 说明 |
| --- | --- | --- | --- |
| code | string | 否 | 状态码,操作成功则为 SUCCESS。|
| message | string | 否 | 错误描述。 |
| fileList | &lt;Array&gt;.object| 否 | 存储下载链接的数组。 |
| requestId | string | 否 | 请求序列号,用于错误排查。 |
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| code | string | 否 | 删除结果,成功为 SUCCESS。 |
| fileID | string | 是 | 文件 ID。 |
| tempFileURL | string | 是 | 文件访问链接。 |
**fileList字段**
### 示例代码
| 字段 | 类型 | 必填| 说明 |
| --- | --- | --- | --- |
| code | string| 否 | 删除结果,成功为 SUCCESS。|
| fileID | string| 是 | 文件 ID。 |
| tempFileURL | string| 是 | 文件访问链接。 |
**示例代码**
```javascript
let result = await uniCloud.getTempFileURL({
......@@ -72,34 +71,33 @@ let result = await uniCloud.getTempFileURL({
});
```
## 删除文件
## uniCloud.deleteFile(Object deleteFileOptions)
接口名称:deleteFile
接口功能:删除云端文件。
删除云端文件。
### 请求参数
**deleteFileOptions参数说明**
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| fileList | &lt;Array&gt;.string | 是 | 要删除的文件 ID 组成的数组。 |
| 字段 | 类型 | 必填| 说明 |
| --- | --- | --- | --- |
| fileList| &lt;Array&gt;.string| 是 | 要删除的文件 ID 组成的数组。|
### 响应参数
**响应参数**
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| code | string | 否 | 状态码,操作成功则不返回。 |
| message | string | 否 | 错误描述 |
| fileList | &lt;Array&gt;.object | 否 | 删除结果组成的数组。 |
| requestId | string | 否 | 请求序列号,用于错误排查。 |
| 字段 | 类型 | 必填| 说明 |
| --- | --- | --- | --- |
| code | string | 否 | 状态码,操作成功则不返回。|
| message | string | 否 | 错误描述 |
| fileList | &lt;Array&gt;.object| 否 | 删除结果组成的数组。 |
| requestId | string | 否 | 请求序列号,用于错误排查。|
fileList
**fileList字段**
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| code | string | 否 | 删除结果,成功为SUCCESS。 |
| fileID | string | 是 | 文件 ID。 |
### 示例代码
**示例代码**
```javascript
let result = await uniCloud.deleteFile({
......@@ -109,27 +107,27 @@ let result = await uniCloud.deleteFile({
});
```
## 下载文件
- 接口名称:downloadFile
- 接口功能:下载已上传至云开发的文件至本地(默认本地根目录/root)。
## uniCloud.downloadFile(Object downloadFileOptions)
### 请求参数
下载已上传至云开发的文件至本地(默认本地根目录/root)。
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| fileID | string | 是 | 要下载的文件的 ID。 |
| tempFilePath | string | 否 | 下载的文件要存储的位置。 |
**downloadFileOptions参数说明**
### 响应参数
| 字段 | 类型 | 必填| 说明 |
| --- | --- | --- | --- |
| fileID | string| 是 | 要下载的文件的 ID。 |
| tempFilePath| string| 否 | 下载的文件要存储的位置。|
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| code | string | 否 | 状态码,操作成功则不返回。 |
| message | string | 否 | 错误描述。 |
| fileContent | Buffer | 否 | 下载的文件的内容。如果传入 tempFilePath 则不返回该字段。 |
| requestId | string | 否 | 请求序列号,用于错误排查。 |
**响应参数**
| 字段 | 类型 | 必填| 说明 |
| --- | --- | --- | --- |
| code | string| 否 | 状态码,操作成功则不返回。 |
| message | string| 否 | 错误描述。 |
| fileContent | Buffer| 否 | 下载的文件的内容。如果传入 tempFilePath 则不返回该字段。|
| requestId | string| 否 | 请求序列号,用于错误排查。 |
### 示例代码
**示例代码**
```javascript
let result = await uniCloud.downloadFile({
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册