每当云代码中发生更改时自动复制某些值 [ parse.com ]

Automatic copying of some value whenever it's changed in cloud code [ parse.com ]

如何用云代码 (parse.com) 编写一个短程序,自动将一个 PFObject 的字段值复制到另一个 PFObject 的特定字段(不同 class 比原来的)每当原始字段被更改时?例如,我有一些用户名,我希望在他更改姓名时自动将其复制到他的帖子对象中。 我希望它在服务器端完成。因此我需要用云代码编写它。

要实现此功能,您可以使用 Parse Cloud afterSave 过程。假设您在 Parse 中有一个配置文件 table,并且您的用户可以选择 s/he 可以更新名称。因此,您可以编写一个云 afterSave 函数,在其中搜索 Post table(基于您的用户 ID)并更新名称字段(这是一个简单的场景)下面的代码是一个示例;

Parse.Cloud.afterSave("Profile", function(request) {

  var updatedList = [];
  var query = new Parse.Query("Post");
  query.equalTo("userId", request.object.get("userId"));
  query.find({
    success: function(records) 
    {
        for(var i = 0;i < records.length;i++)
        {
            var currentObject = records[i];
            currentObject.set("name",request.object.get("name"));
            updatedList.push(currentObject);
        }
        Parse.Object.saveAll(updatedList,{
        success: function(list) {},
        error: function(error) {},
      });
    },
    error: function(error) 
    {
    }
  });
});

以上代码在配置文件 table 中保存后触发。它搜索 Post class 并找到与您当前用户(请求者)相关的所有条目。接下来它会更新 Post table 更改名称字段的位置。

另外不要忘记此过程会针对配置文件 table 中的所有更新触发。因此,另一种选择是编写一个云函数,当您更新个人资料(在您的应用程序上)中的某些内容时触发。希望这有帮助。

此致。