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

update: 调整uniCloud文档

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