7***@qq.com
7***@qq.com
  • 发布:2023-09-13 15:35
  • 更新:2023-09-13 22:39
  • 阅读:297

【报Bug】uni-id-users的扩展schema,触发器create无法监听到

分类:uniCloud

产品分类: uniCloud/App

示例代码:

// schema扩展相关文档请参阅:https://uniapp.dcloud.net.cn/uniCloud/jql-schema-ext.html
module.exports = {
trigger: {
// 注册数据表的Create后事件
afterCreate: async function (
// 确定要监听的什么样的JQL指令
{
result
} = {}) {
const db = uniCloud.database()
// 用户创建送10积分,添加积分记录。
console.log("用户创建送10积分,添加积分记录");
const scoresTable = await db.collection('uni-id-scores').add({
user_id: result.id,
balance:10,
score:10,
type: 1,
comment: '注册送10积分',
create_date: Date.now()
});
},

}  

}

操作步骤:

// schema扩展相关文档请参阅:https://uniapp.dcloud.net.cn/uniCloud/jql-schema-ext.html
module.exports = {
trigger: {
// 注册数据表的Create后事件
afterCreate: async function (
// 确定要监听的什么样的JQL指令
{
result
} = {}) {
const db = uniCloud.database()
// 用户创建送10积分,添加积分记录。
console.log("用户创建送10积分,添加积分记录");
const scoresTable = await db.collection('uni-id-scores').add({
user_id: result.id,
balance:10,
score:10,
type: 1,
comment: '注册送10积分',
create_date: Date.now()
});
},

}  

}

预期结果:

用户注册给uni-id-scores加积分

实际结果:

没有触发触发器,不能加积分

bug描述:

使用uni-id体系,实现uni-id-users的扩展schema,触发器create无法监听到,不能进行处理相关业务,麻烦帮忙看看是什么原因

2023-09-13 15:35 负责人:无 分享
已邀请:
DCloud_uniCloud_WYQ

DCloud_uniCloud_WYQ

只有jql操作才会触发数据库触发器,uni-id没有使用jql语法

  • 7***@qq.com (作者)

    可是我我尝试update是可以触发的,就是create不行

    2023-09-13 16:39

  • DCloud_uniCloud_WYQ

    回复 7***@qq.com: create的数据库操作语句怎么写的

    2023-09-13 16:45

  • 7***@qq.com (作者)

    回复 DCloud_uniCloud_WYQ: 我看了一下源码,注册这块 create的数据库操作语句是这样的:

    const db = uniCloud.database()

    const dbCmd = db.command

    const userCollectionName = 'uni-id-users'

    const userCollection = db.collection(userCollectionName)

    ========================================================

    const beforeRegister = this.hooks.beforeRegister

    let userRecord = user

    if (beforeRegister) {

    userRecord = await beforeRegister({

    userRecord,

    clientInfo: this.getUniversalClientInfo()

    })

    }


    const {

    id: uid

    } = await userCollection.add(userRecord)

    ========================================================

    这样的确是jql语法,

    2023-09-13 22:39

  • 7***@qq.com (作者)

    回复 DCloud_uniCloud_WYQ: 麻烦帮忙看看,非常感谢

    2023-09-14 13:04

  • DCloud_uniCloud_WYQ

    回复 7***@qq.com: uni-id没有使用jql语法 不能触发触发器

    2023-09-14 19:39

要回复问题请先登录注册