uni-app uni-admin项目 读取不到云数据库的字段更新

uni-app uni-admin项目 读取不到云数据库的字段更新

产品分类:
uniCloud/腾讯云

操作步骤:

更新了表的字段,添加了两个新的字段,uni-admin在本地运行可以更新,打包后无法更新这两个字段,提示云数据库不存在这两个字段,但是云数据库的schema实际上已经存在这两个字段了

预期结果:

正常读取新字段

实际结果:

提示字段不存在

bug描述:

更新了表的字段,添加了两个新的字段,uni-admin在本地运行可以更新,打包后无法更新这两个字段,提示云数据库不存在这两个字段,但是云数据库的schema实际上已经存在这两个字段了
而且这个提示一会中文,一会英文
已经影响到正常业务使用,请尽快修复

Image 1
Image 2
Image 3


更多关于uni-app uni-admin项目 读取不到云数据库的字段更新的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

我也遇到同样问题,一上午时间都浪费在这上面了! 我给一个表添加了新字段,就是报错,说云端数据表的schema不存在。如果是本地允许云函数就可以,上云就不行了。 尝试了各种方法测试,发现好像是schema的更新不起任何作用了。 我认为问题应该出在dcloud的云端,修改了schema后,在进行连接时,依然连到了某个缓存的数据库,而不是最新的。

更多关于uni-app uni-admin项目 读取不到云数据库的字段更新的实战教程也可以访问 https://www.itying.com/category-93-b0.html


稳定性一言难尽 ,更新很随意,用在线上产品就感觉在和dcloud一起赌博

uni-app 中使用 uni-admin 项目时,如果无法读取到云数据库的字段更新,可能是由于以下几个原因导致的。以下是一些常见的排查步骤和解决方案:

1. 检查云函数或云数据库的权限

  • 云函数权限:确保你的云函数有权限读取和更新云数据库。你可以在 uniCloud 控制台中检查云函数的权限设置。
  • 云数据库权限:检查数据库的读写权限设置,确保当前用户或角色有权限读取和更新数据库字段。

2. 确认数据库字段更新是否成功

  • uniCloud 控制台中手动检查数据库,确认字段是否成功更新。如果字段没有更新,可能是更新逻辑有问题。
  • 你可以通过 console.log 在云函数中打印更新前后的数据,确认更新操作是否执行成功。

3. 检查云函数的返回值

  • 确保云函数在更新数据库后,返回了正确的数据。客户端需要接收到更新后的数据才能正确显示。
  • 例如:
    exports.main = async (event, context) => {
      const db = uniCloud.database();
      const collection = db.collection('your_collection');
      const res = await collection.doc(event.id).update({
        field: event.newValue
      });
      return res;
    };
    

4. 客户端调用云函数的逻辑

  • 确保客户端正确调用了云函数,并且处理了返回的数据。
  • 例如:
    uniCloud.callFunction({
      name: 'your_cloud_function',
      data: {
        id: 'your_doc_id',
        newValue: 'new_value'
      },
      success: (res) => {
        console.log('更新成功', res.result);
        // 更新页面数据
        this.yourData = res.result;
      },
      fail: (err) => {
        console.error('更新失败', err);
      }
    });
    

5. 检查数据库监听

  • 如果你使用了数据库的实时监听功能(如 watch),确保监听逻辑正确,并且能够捕获到数据库的变化。
  • 例如:
    const db = uniCloud.database();
    const watcher = db.collection('your_collection').where({}).watch({
      onChange: (snapshot) => {
        console.log('收到数据变化', snapshot);
        // 更新页面数据
        this.yourData = snapshot.docs;
      },
      onError: (err) => {
        console.error('监听失败', err);
      }
    });
回到顶部