解析云函数:返回前更改对象属性

时间:2015-09-13 18:41:56

标签: javascript ios parse-platform

我已经使用敏感数据解析_User,因此我将公共读/写的ACL设置为false。但是,我希望允许用户获取用户数据的某些,例如他们的名/姓。我通过云代码执行此操作 - 他们使用特定的objectId轮询用户,但是当云代码返回时,它将通过在返回用户之前更改字段来审查敏感数据。然而,似乎Parse认为这种物体的返回"脏,"并拒绝返回。有没有办法以这种方式(或任何其他方式)将修改过的对象返回给用户?

例如,我的用户对象有五个(值得注意的)字段。

+----------+-----------+----------+-----------+----------+
| objectId | firstName | lastName | birthdate | username |
+----------+-----------+----------+-----------+----------+
| aBcDeFgH | "Jason"   | "Bourne" | "4/15/71" | jbourne  |
+----------+-----------+----------+-----------+----------+

当我查询它时,我想省略生日。为了在云端做到这一点,我说了一些......

var object = result // result of a Parse.Query.first function
object.set("birthdate", "censored")
return object

我收到以下错误。

[Error]: Uncaught Tried to save an object with a pointer to a new, unsaved object. (Code: 141, Version: 1.8.2)

1 个答案:

答案 0 :(得分:2)

There is (a quite old, but still applicable) answer在他们的论坛中。

这背后的想法是,由于Parse禁止将未保存的(持久的)对象返回到客户端,因此您只需复制对象,编辑副本并返回该对象。我希望这是有道理的。