【原】使用Bmob作为iOS后台开发心得——云端代码添加其他User的Relation关系

本文转载请注明出处 —— 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即可。

原文地址:https://www.cnblogs.com/polobymulberry/p/4821177.html