问题描述
我在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即可。
时间: 2024-11-25 10:31:27