公众号共享云开发环境-1.未登录状态访问云资源报错

382 阅读2分钟

未登录状态访问云资源报错?

背景:

  • 使用小程序云开发共享环境给公众号使用
  • 在上手时复制了官方给的公众号使用云开发的html示例
  • 使用示例中“未登录状态调用云资源”,报错代码为 -501023 或 -401011

可能原因

首先,-401011通常为【云函数不存在】,-501023似乎和权限有关

(1)云函数未部署上传

这是比较常见的疏忽,云函数写完了本地调试就不管了,忘记上传部署

解决:右键对应云函数---上传并部署

通常选择云端安装node_modules,除非一直提示失败,那么就把所有文件上传

(2)云资源或云函数权限限制

在 云开发---右上角设置---权限设置---滑到下面将对应环境云资源设置允许未登录

在 云开发---云函数---云函数权限 设置为允许所有用户访问(本步骤的有效性未确认,我用了上面那个就好了)

(3)云数据库权限未设置为自定义

如果是完全照抄官方给的例子,他调用云资源的示例是去访问云数据库的test集合。首先确认你有这个集合,并在上面菜单中权限一栏将权限改为最底端的自定义,允许所有人读取

番外:调用云函数返回undefined

  • 背景:刚刚上手测试的时候,想要确认是不是可以未登录调用云函数,所以就简单改了一下官方给的调用云数据库的例子,用【callFunction】方法调云函数
  • 问题:经过上面说的方法解决了报错问题,但返回值仍是undefined
  • 解决:最后发现是忽略了调用云数据库和云函数方法返回值的区别,所以在callFunction里没有写success回调。补回success回调后就能在success里获取到实际的返回值了

总结

官方给的例子真的太简洁了,又连一点详细的说明都没有,啪啪啪给你扔一个html和两个云函数让你去试,对于我这种新人小白真的太难受了。。