枫瑞
枫瑞
  • 发布:2023-12-01 16:07
  • 更新:2023-12-01 16:07
  • 阅读:70

【报Bug】使用权限规则内的数据库查询get方法设置数据库的permission时,本地云函数和云端云函数表现不一致

分类:uniCloud

产品分类: uniCloud/App

示例代码:
db.collection('user-dancing').where({_id: 1}).update({  
                    apply_status: 'approved'  
                }).then((res) => {  
                    uni.showToast({  
                        icon: 'success'  
                    })  
                }).catch((err) => {  
                    uni.showModal({  
                        content: err.message || '请求服务失败',  
                        showCancel: false  
                    })  
                }).finally(() => {  
                    uni.hideLoading()  
                })

操作步骤:

运行update函数

预期结果:

连接本地云函数,提示成功;
连接云端云函数,提示成功

实际结果:

连接本地云函数,提示成功;
连接云端云函数,提示 user-dancing['.update']:get方法内参数值必须唯一位置:31-67

bug描述:

我现在有这两张表
user-dancing:

{  
    "bsonType": "object",  
    "required": ["dancing-id"],  
    "permission": {  
        "read": true,  
        "create": "auth.uid != null",  
        "update": "doc.user_id == auth.uid || get(`database.dancing.${get(`database.user-dancing.${doc._id}`).dancing_id}`).ownerId == auth.uid",  
        "delete": "doc.user_id == auth.uid"  
    },  
    "properties": {  
        "_id": {  
            "description": "user-dancing关系 ID,系统自动生成"  
        },  
        "dancing_id": {  
            "bsonType": "string",  
            "description": "",  
            "foreignKey": "dancing._id"  
        }  
    },  
    "version": "0.0.2"  
}

以及dancing:

{  
    "bsonType": "object",  
    "description": "",  
    "required": [  
        "ownerId"  
    ],  
    "permission": {  
        "read": true,  
        "create": true,  
        "update": true,  
        "delete": false  
    },  
    "properties": {  
        "_id": {  
            "description": ""  
        },  
        "ownerId": {  
            "bsonType": "string",  
            "description": "发布人用户 id,参考`uni-id-users`表",  
            "foreignKey": "uni-id-users._id",  
            "forceDefaultValue": {  
                "$env": "uid"  
            }  
        }  
    },  
    "version": "0.0.3"  
}

在使用update更改user-dancing表中数据的时候,本地云函数可以正常更改,云端云函数提示
user-dancing['.update']:get方法内参数值必须唯一位置:31-67

2023-12-01 16:07 负责人:无 分享
已邀请:

要回复问题请先登录注册