微信小程序环境共享,多个小程序共享一个云开发数据库
这时候还会报错,是因为我们忽略了官方的一个要求:“ 跨账号调用,必须等待 init 完成”,所以我们必须给init加一个await语法,如下,记得await要结合着async一起使用。环境共享开通后将在顶部tab显示环境共享功能,进入 “环境共享” 的页面,点击“添加共享”,即可授权同主体下其他小程序/公众号使用当前小程序下的云开发资源。我们小程序B想使用小程序A的云开发环境,这里要注意,初始化的
====================================================================
首先看官方文档:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/resource-sharing/
要共享云开发资源可以 ,但是必须是同一个主体。什么是同一个主体呢,就是两个小程序必须都是你自己的,或者是你公司的。
如果不是同一个主体,会报如下错误
这里记得调到最新的基础库,开发者工具也尽量用最新的
开发者工具这里官方是有要求的
======================================================================
我这里以两个小程序共享一个数据库为例
小程序A
小程序B
大家这里记得我们是小程序A 共享数据库给小程序B
开通,使用 1.03.2009140 或以上版本的开发者工具,进入云控制台,到 “设置 - 拓展能力 - 环境共享” 点击开通即开通环境共享能力
环境共享开通后将在顶部tab显示环境共享功能,进入 “环境共享” 的页面,点击“添加共享”,即可授权同主体下其他小程序/公众号使用当前小程序下的云开发资源
这里填写你要共享小程序的appid,我们这里取小程序B的appid
授权,选择共享的云环境,默认选中所有环境操作权限,可根据实际使用场景自定义授权。这里建议保持默认即可
比如我这里分享给小程序B(编程小石头)
我们上面操作好以后,就可以在小程序B的云开发后台看到共享的云开发环境了。将我们的云开发环境切换下就可以查看和使用共享的资源了。
可以看到小程序B(编程小石头)可以查看小程序A的数据库了
========================================================================
我们接下来就在小程序B里调用小程序A的数据库了。官方提示的是调用之前要在小程序A里创建一个如下的云函数,但是我在测试的时候发现不用创建也可以的。
所以我们就先不创建cloudbase_auth 云函数,来看看能不能调取到数据。
我们小程序B想使用小程序A的云开发环境,这里要注意,初始化的时候要如下面注释里写的一样,用小程序A的appid和云开发环境id
初始化以后不能想正常调用云开发数据库那样了,会报错
所以我们这里要改变下使用方法。如下
这时候还会报错,是因为我们忽略了官方的一个要求:“ 跨账号调用,必须等待 init 完成”,所以我们必须给init加一个await语法,如下,记得await要结合着async一起使用。
可以看到我们成功的请求到了小程序A的数据。直接get的时候记得改下数据库权限奥。
代码贴出来给大家,记得改成自己的配置
Page({
async onLoad() {
// 声明新的 cloud 实例
var c1 = new wx.cloud.Cloud({
// 资源方 小程序A的 AppID
resourceAppid: 'wx7c54942dfc87f4d8',
// 资源方 小程序A的 的云开发环境ID
resourceEnv: 'test-ec396a',
更多推荐
所有评论(0)