uni-id 后端使用 uid 的方式

119 阅读1分钟

uni-id 很好很强大,记录下在 schema 扩展 js 中使用的方式。

首先,在 schema 扩展 js 中,要在进行数据库交互时带上用户验证信息,可以这样:

beforeCreate: async function({ 
    collection,
    operation,
    addDataList,
    clientInfo  // 声明参数 clientInfo
} = {}) {
    const dbJQL = uniCloud.databaseForJQL({
        clientInfo: clientInfo,  // 传入 clientInfo 来初始化一个数据库操作对象
        skipTrigger: true
    })

这样 dbJQL 就带入了用户信息,在进行数据库交互时可以通过权限校验。

当在进行查询时,经常要用到用户在数据库内的唯一 ID,可以这样拿到:

var res = await dbJQL.collection("你的表名").where('userId == $cloudEnv_uid').count()

$cloudEnv_uid 会在后续处理中自动替换为用户 ID,非常的方便,相关的文档在这里

如果需要跟用户相关的其它数据,可以这样:

beforeCreate: async function({ 
    collection,
    operation,
    addDataList,
    clientInfo,
    userInfo  // 声明 userInfo 参数,直接传入用户信息
} = {}) {
    ...
}
    

在后续处理逻辑中直接使用即可,相关文档在这里