Back4App 删除关联对象脚本类似于 AWS lambda

问题描述

我有 Employee 课和 Salary 课。

Salary 类有一个指向 Employee 类的指针。 Employee 没有工资指针。但如果需要,我可以扩展。

当我删除 Employee 记录时,我想删除与其关联的 Salary。这可以通过一些 Back4App 脚本或函数来实现吗?

或者只有一种方法可以通过客户端代码来实现。我知道我可以创建一个查询删除需要员工的工资指针:

let query = PFQuery(className: "Salary")
query.whereKey("employee",equalTo: pfEmployeeObjectReference)

query.findobjectsInBackground { (objects,error) in
//... skip cycle here
object.deleteEventually()

解决方法

对于您的用例,我建议使用 Employee 类的 afterDelete 触发器。要阅读有关触发器的更多信息,请访问以下链接: https://docs.parseplatform.org/cloudcode/guide/#afterdelete

所以你的删除后触发代码应该是这样的:

Parse.Cloud.afterDelete("Employee",(request) => {
  //This is the deleted object      
  var deletedObject = request.object
  
  //Fetching the Salary object associated with the Employee object
  var salaryObj = await deletedObject.fetch("pointer_to_salary")

  //Deleting the salary object
  await salaryObj.destroy({useMasterKey:true});

});