【发布时间】:2014-07-25 15:57:06
【问题描述】:
我正在尝试限制云函数中解析用户对象的某些字段的可见性。 我有一个“产品”类,带有一个名为“所有者”的指针,指向上传项目的“用户”。
我还有一个叫“getProducts”的云函数,我同时使用query.include(“owner”)来获取owner数据。
我想要实现的是,“getProduct”的输出将是一个产品列表,但“Owner”对象将仅包含某些字段,例如“firstName”或“facebookId”, 我不想将其他敏感数据返回给客户,即使我没有提供(例如位置、电子邮件、姓氏等)。
搜索后,我看到了 2 种可能的解决方案。 1.) 将 User 类分成 2 个类,其中 1 个是带有 ACL 的“Private”类,仅供用户使用。 2.)我更喜欢的第二种方法,我编辑云功能中的字段,但我似乎无法更改“产品”对象的“所有者”对象。我收到错误: “错误:未捕获尝试使用指向新的未保存对象的指针保存对象。(代码:141,版本:1.2.19)”
var output[] = [];
_.each(results, function(result) {
var responseData = {};
var owner = result.get("owner");
//Remove fields from the user object
var itemOwnerId = owner.id;
var itemOwnerFirstName = owner.firstName;
var itemOwnerFacebookID = owner.facebookID;
var itemOwner = new Parse.User();
itemOwner.id = itemOwnerId;
itemOwner.id = itemOwnerId;
itemOwner.firstName = itemOwnerFirstName;
itemOwner.facebookID = itemOwnerFacebookID;
result.set("owner", itemOwner);
responseData.item = result;
output.push(responseData);
});
似乎调用 result.set("owner", itemOwner) 不好,并抛出我 exepction: rror: Uncaught 尝试使用指向新的未保存对象的指针保存对象。 (代码:141,版本:1.2.19)
我做错了什么?
【问题讨论】: