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()
,但将结果视为数组。
我不知道如何在云代码中删除 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()
,但将结果视为数组。