本文转载请注明出处 —— polobymulberry-博客园
问题描述
我在User表中增加了两个列,分别为“我关注的人”(Relation关系)和“我的粉丝”(Relation关系)当我关注某个人的时候,一方面我要添加他到“我关注的人”,另一方面在他的粉丝中要将我添加上去。看起来很简单,但是实际中操作时,使用bmob sdk中的updateInBackgroundWithResultBlock会遇到我想更新别人的User信息,是无法成功的,因为权!限!
解决方法
这里就得使用Bmob给我们提供的Master Key了(慎用,因为权限太大)。
function onRequest(request, response, modules) {
// 将objectId为fansObjectId的User添加给objectId为userObjectId的User
var userObjectId = request.body.userObjectId;
var fansObjectId = request.body.fansObjectId; var relFans = modules.oRelation;
// 设置Master-Key
relFans.setHeader({"X-Bmob-Master-Key":"XXXXXXXXXXXXX"});
relFans.update({
"table":"_User",
"objectId":userObjectId,
// 此处注意用的是"__type":"Pointer",而非"Relation",注意,一开始我用Relation弄不起来,改成Pointer就OK了
"data":{"Fans":{"__op":"AddRelation","objects":[{"__type":"Pointer","className":"_User","objectId":fansObjectId}]}}
},function(err,data){
response.end(data);
});
}
其他没什么好说的了。顺便说一句如果你想使用别人的oData对象,就用oData.setHeader即可。