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

Parse Cloud Function: Change object attributes before return

本文关键字:对象 属性 返回 函数      更新时间:2023-09-26

我有Parse _User的敏感数据,所以我有ACL的公共读/写设置为false。但是,我希望允许用户获取用户数据的部分,例如他们的姓/名。我通过云代码来实现这一点——它们轮询具有特定objectId的用户,但是当云代码返回时,它将在返回给用户之前通过更改字段来审查敏感数据。然而,Parse似乎认为对象的这种返回是"脏的",并拒绝返回。是否有方法以这种方式(或任何其他方式)将修改后的对象返回给用户?

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

+----------+-----------+----------+-----------+----------+
| 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)

在他们的论坛上有一个(相当老的,但仍然适用的)答案。

这背后的想法是,由于Parse禁止将未保存的(持久的)对象返回给客户端,您只需复制对象,编辑副本并返回即可。