# 多端应用-快速开始

## 使用云开发

使用云开发时，需要在 `cloud.init` 时显式指定云开发环境所在的微信 AppID：

``` js
wx.cloud.init({
  appid: 'wx1234567890', // 创建云开发环境的 AppID（小程序、公众号），不是多端应用 AppID
  envid: 'env-id-example', // 云开发环境名称
})
```

## 多端登录模式

采用以下登录方式，登录成功后，可以无缝使用云开发，和在微信小程序内使用无异。

### 1. [唤起微信小程序登录](/miniprogram/dev/platform-capabilities/miniapp/api/auth/wx.weixinMiniProgramLogin.md)
### 2. [移动应用微信登录](/miniprogram/dev/platform-capabilities/miniapp/api/auth/wx.weixinAppLogin.md)
  - 如果使用的是移动应用微信登录，需要在「微信开发者工具-云开发-更多-环境共享-添加共享」给移动应用 APPID 共享环境
### 3. 其他方式登录
  - 如果使用其他方式登录，如手机号登录，需要在登录后去绑定微信，绑定成功后只用该方式登录也可以使用云开发

> 注意：环境共享时，需要填写的移动应用 APPID


## 未登录模式

默认情况下，在多端框架内是无法正常使用云开发的，包括云函数、数据库等。这是因为多端环境中缺失微信登录态信息的（即 `cloud.getWXContext` 内无 `OPENID`）。

为此，我们提供了云开发的未登录模式，开发者可以进行以下配置，在多端环境中以未登录态模式使用云开发。

### 1. 开启环境级别开关

为了允许未登录模式用户访问云环境资源，需要在「微信开发者工具-云开发-设置-权限设置-未登录用户访问云资源权限设置」打开相应云环境的开关。

![](https://dev.weixin.qq.com/docs/assets/unauth-cloud-environment-c7813d29.png)

### 2. 配置云函数安全规则

调用云函数时，由于未登录模式的限制，还需要配置[云函数的安全规则](/miniprogram/dev/wxcloudservice/wxcloud/guide/functions/security-rules)。参考安全规则如下（云函数 function1 支持未登录模式调用）：

``` json
{
  // * 为通配符，表示对所有函数适用
  "*": {
    // invoke 表示调用权限控制
    // auth 包含鉴权信息，如果是未登录模式，则 auth == null
    "invoke": "auth != null"
  },
  // 函数名，该规则优先级会高于通配符
  "function1": {
    // 表示允许所有来源调用，包括未登录用户
    "invoke": true
  }
}
```

### 3. 配置数据库安全规则

访问数据库时，由于未登录模式的限制，还需要配置[数据库安全规则](../guide/database/security-rules#%E8%A7%84%E5%88%99%E7%BC%96%E5%86%99)。参考安全规则如下（所有用户可读，仅登录后创建者可写）：

``` js
{
  "read": true,
  "write": "auth != null && doc._openid == auth.openid"
}
```

### 4. uploadFile、cloudId 和其他接口

未登录模式下，不支持 `wx.cloud.uploadFile` 以及 `cloudId` 等需要登录态的接口。如有上传文件需求，建议使用「多端登录模式」，或者通过腾讯云对象存储等形式直接上传到存储桶中。`cloudId` 访问云存储建议改以 `https url` 形式访问。
