收藏
回答

小程序云开发数据库访问报 -601002 错误,已排除环境ID和基本权限设置问题

框架类型 问题类型 终端类型 AppID 环境ID 基础库版本
小程序 Bug 微信iOS客户端 wxee7eaa3efdb620fd cloudbase-8gghdoel1548bd3 [system] WeChatLib: 3.6.5 (2025.3.20 11:34:50)

在小程序中尝试通过 wx.cloud.database() 访问云数据库集合,持续收到错误码 -601002 (SERVICE_FAIL_AUTH_INVALID_USER_TICKET) 。此问题在确认云环境 ID 正确无误、已在 app.js 中正确使用 wx.cloud.init() 初始化,并且对目标集合设置了“所有用户可读,仅创建者可写/所有用户可读可写”以及开启了环境的“未登录用户访问权限”后依然存在。即使使用最简化的数据库读取测试代码,也无法成功。

操作步骤:

1. 在微信开发者工具中创建一个新的小程序项目

2. 开通云开发,并获取云环境 ID。

3. 在云数据库中创建一个名为 pocket_chat_data 的集合

4. 设置 pocket_chat_data 集合的数据库权限为“所有用户可读,仅创建者可写”。

5. 在云开发控制台“概览”->“设置”中,打开环境的“未登录用户访问权限”。

6. 在 `app.js` 的 onLaunch 方法中添加如下初始化和测试代码:


// app.js
App({
  onLaunch() {
    // 本地存储能力
    const logs = wx.getStorageSync('logs') || []
    logs.unshift(Date.now())
    wx.setStorageSync('logs', logs)


    // 登录
    wx.login({
      success: res => {
        // 发送 res.code 到后台换取 openId, sessionKey, unionId
      }
    })
    // 初始化云开发环境
    if (!wx.cloud) {
      console.error('请使用 2.2.3 或以上的基础库以使用云能力')
    } else {
      wx.cloud.init({
        env: 'cloudbase-8gghdoel1548bd3', 
        traceUser: true,
      });
      const db = wx.cloud.database();
      db.collection('pocket_chat_data').limit(1).get({
        success: function(res) {
          console.log('测试数据库读取成功:', res.data);
        },
        fail: function(err) {
          console.error('测试数据库读取失败:', err);
        }
      });
    }
  },
  globalData: {
    userInfo: null,
    message: [] //缓存消息数据
  }
})



编译报错

最后一次编辑于  06-18
回答关注问题邀请回答
收藏
登录 后发表内容