0

请帮助我更新用户文档嵌套字段。我有一个用户文档,其中包含具有 avatarUrl、姓名、电子邮件作为字段的 visibleByTheUser 字段。上传个人资料图片时,我只想更新 avatarUrl 字段。当我尝试更新它时,它会覆盖整个对象。作为参考,请在下面找到我的服务代码。

var headers = {
                'Authorization': 'Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==',
                'contentType' : 'application/json',
                'X-BAASBOX-APPCODE' : baasboxAppCode,
                'X-BB-SESSION' :  window.localStorage.getItem("userToken")
        };
        //TODO: Change the updation format.
        //Below format is overriding the complete object.
        var data = {
                "visibleByTheUser": {
                    "avatarUrl" : updatedAvatarUrl
                },
        };
        url = serverUrl+ '/me';
        var promise = $http({
            method: "PUT",
            url : url,
            headers : headers,
            data: data
        });
        promise.then(function(data){
            console.log("success data in ProfileUpdation is:"+ JSON.stringify(data));

        });
        promise.error(function(error) {
            console.log("error in ProfileUpdation is:",JSON.stringify(error));
        });
        return promise;
4

1 回答 1

0

我想出了这个答案。与其在 Baasbox 中无法更新嵌套对象的特定字段,不如更新其中包含嵌套对象的整个字段。

这是我为此使用的代码

avatrUrlUpdation : function(visibleByTheUserforUpdation){
        /*console.log("entered into avatarUrlUpdation");*/
        var headers = {
                'Authorization': 'Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==',
                'contentType' : 'application/json',
                'X-BAASBOX-APPCODE' : baasboxAppCode,
                'X-BB-SESSION' :  window.localStorage.getItem("userToken")
        };
        //TODO: Change the updation format.
        //Below format is overriding the complete object.
        var data = {
                "visibleByTheUser" : visibleByTheUserforUpdation
        };
        url = serverUrl+ '/me';
        var promise = $http({
            method: "PUT",
            url : url,
            headers : headers,
            data: data
        });
        promise.then(function(data){
            console.log(data);
        });
        promise.error(function(error) {
            console.log("error in ProfileUpdation is:",JSON.stringify(error));
        });
        return promise;
    }
于 2016-06-01T06:46:34.810 回答