Parse Cloud Code - 为什么我不能删除 Parse.Role?

Parse Cloud Code - Why can't I delete a Parse.Role?

我不知道如何在云代码中删除 Parse.Role。该指南说它们是 Parse.Object 的子类,并且具有所有相同的方法。但是我收到以下错误,为什么我尝试删除一个:

对象 [object Object] 没有方法 'destroy'

Parse.Cloud.afterDelete("Project", function(request) {

    Parse.Cloud.useMasterKey();

    var query = new Parse.Query(Parse.Role);
    query.equalTo("name", "hasSound_" + request.object.id);

    query.find().then(function(role) {

        if(typeof role === 'undefined') {
            console.log("role is undefined, cannot delete");
        }
        else {
            role.destroy();
        }

    }).then(function(success) {
        console.log("role deleted: hasSound_" + request.object.id);
    }, function(error) {
        console.log("error deleting role");
    });

});

我有一些 console.log 语句验证 "name" 是正确的,所以查询应该找到正确的对象。我不确定还能尝试什么。

此外,我的角色是以项目的 ID 命名的。所以每个Project都有一个角色叫做"hasSound_[id of project]"。当我删除项目时,我不再需要与其关联的角色。我的意思是我可以将未使用的项目留在数据库中,但这似乎很浪费。

find() 由匹配对象的 数组 完成。由于您的角色是独一无二的,因此您可以安全地将 find() 更改为 first()。或者您可以继续使用 find(),但将结果视为数组。