当我们在做小程序开发的时候,有时候我们需要多个applet来共享一个数据库。比如我们做外卖app的时候,需要支持一个骑手app。这时候,我们需要两个小程序来共享一个云。开发环境有一个通用数据库。那么今天就教大家如何将一个云开发环境和数据库共享给多个小程序。
其实官方文档很详细,但是官方没有提到一个细节,所以很多同学在和多个小程序共享一个云开发环境的时候会遇到各种问题。
如下这样的问题
明显感觉我已经按照官方的要求配置了所有的配置,但是为什么会报错呢?所以这里再带大家完整的配置一遍,里面的一些注意事项我也会强调一下。
一、准备条件1-1,必须是同一科目
先看官方文档:
可以共享云开发资源,但必须是同一主题。什么是同一个主题,就是两个小程序一定是你自己的,还是你公司的。
如果不是同一个主题,会报如下错误
1-2,最新基础库,最新版开发工具
记得在这里调到最新的基础库,尽量使用最新的开发者工具
这里正式需要开发者工具
二、开放环境共享
这里我以两个applet共享一个数据库为例
小程序A
小程序B
请记住,我们是小程序 A 与小程序 B 共享数据库
2-1、开放环境共享
激活,使用1.03.2009140或以上的开发者工具,进入云控制台微信小程序如何开发,进入“设置-扩展性-环境共享”点击“激活”即可激活环境共享能力
p>
2-2、激活后授权其他小程序
环境分享开启后,顶部标签会显示环境分享功能,进入“环境分享”页面,点击“添加分享”即可授权同一主体下的其他小程序/公众号使用当前小程序资源下的云开发
这里填写你要分享的小程序的appid微信小程序如何开发,我们这里取小程序B的appid
授权,选择共享云环境,默认选择所有环境操作权限,可根据实际使用场景自定义授权。这里建议保持默认
比如我会分享给小程序B(编程小石头)
2-3、使用共享云开发环境
我们做完以上操作后,就可以在小程序B的云开发后台看到共享云开发环境了,切换我们的云开发环境即可查看和使用共享资源。
可以看到小程序B(programming stone)可以查看小程序A的数据库
三、请求共享数据库
接下来,我们在小程序B中调用小程序A的数据库。官方建议在调用之前在小程序A中创建如下云函数,但我在测试的时候发现不创建也可以。
所以我们先不要创建 cloudbase_auth 云函数,看看能不能取回数据。
3-1、初始化云开发环境
我们的小程序B要使用小程序A的云开发环境,这里需要注意,初始化时小程序A的appid和云开发环境id要按照下面注释中的写法使用。
3-2、调用资源端数据
初始化后不能正常调用云开发数据库,会报错
所以我们必须改变这里的用法。如下
这个时候会报错,因为我们忽略了官方的一个要求:“跨账户调用必须等待init完成”,所以我们必须在init中添加一个await语法,如下,记住要使用await与 async 结合使用。
可以看到我们成功请求了小程序A的数据微信小程序开发,记得直接获取时要更改数据库权限。
四、调用共享环境的云函数4-1微信小程序如何开发,在资源端调用云函数
让我们尝试在小程序 B 中调用小程序 A 中的云函数。
比如小程序A中有一个小石头云功能
可以看到我们可以成功调用小程序A中的小石头云功能
没那么容易。今天就到这里了,欢迎关注,以后会和大家分享更多小程序开发的知识。
本站声明: 本文章内容来源于互联网,文章内容仅供用户参考。本公司不能完全保证文章内容的准备性、时效性。如果因本文章对用户造成了任何损失或者损害,本公司将不会承担任何法律责任。如果涉及到版权问题,请提交到wikins@nbyuyuan.com