ParseError: "неверное или отсутствующее имя пользователя"

Итак, у меня есть некоторый облачный код, который я пытаюсь написать, чтобы опубликовать пост

Моя база данных настроена так, что пользователи имеют likedPosts массив, в котором есть идентификаторы объектов всех постов, которые понравились пользователю. У пользователей также есть колонка coinsдолжно увеличиваться, когда пользователям нравятся их сообщения.

Почтовый объект имеет likes столбец, который является целым числом, которое увеличивается с каждым подобным, и объект post также имеет posterId столбец, который является идентификатором объекта пользователя, который его опубликовал.

Вот моя функция прямо сейчас (я не очень хорош в javascript и облачном коде, поэтому, если что-то ужасно неправильно, извините)

Parse.Cloud.define("likePost", function(request, response) {

    Parse.Cloud.useMasterKey();

    var senderId = request.params.senderId;
    var postId = request.params.postId;

    var post = new Parse.Object ({objectId: postId});
    var posterId = post.posterId

    var poster = new Parse.User ({objectId: posterId});

    var sender = new Parse.User ({objectId: senderId});

    sender.add("likedPosts", postId);

    poster.increment("coins");

    post.increment("likes");

    poster.save(null, {useMasterKey:true, success: 
        function(poster) {
            console.log("Successfully saved poster");   
    }, error: function(poster, error) {
            console.error("Error saving poster: " + error.message);
            response.error(error);
        }
    });
    post.save(null,{useMasterKey:true, success: 
            function(post) {
                console.log("Successfully saved post"); 
        }, error: function(post, error) {
                console.error("Error saving post: " + error.message);
                response.error(error);
            }
        });
    sender.save(null, {useMasterKey:true, success: 
            function(sender) {
                console.log("Successfully saved sender");   
        }, error: function(sender, error) {
                console.error("Error saving sender: " + error.message);
                response.error(error);
            }
        });

    response.success();
});

Я вызываю функцию из swift так:

PFCloud.callFunction(inBackground: "likePost", withParameters: ["senderId" : PFUser.current()!.objectId!, " postId": postObject!.objectId!], block: { (result, error) in

        if (error != nil) {
            print(error!)
        } else {
            print("success liking")
        }

    })

Однако в моих журналах я получаю следующую ошибку:

2017-06-21T21:47:59.499Z - Failed running cloud function likePost for user R4d8Zrcdhw with:
  Input: {"senderId":"R4d8Zrcdhw"," postId":"XXbu55PdpR"}
  Error: {"code":141,"message":{"code":200,"message":"bad or missing username"}}
2017-06-21T21:47:59.492Z - bad or missing username

0 ответов

Я предполагаю, что в запросе отсутствует заголовок для определения типа содержимого. Я видел, как Parse возвращал ошибку "неправильное или отсутствующее имя пользователя" через Parse REST API, если Swift URLSession использовал неправильный заголовок типа содержимого.

request.addValue("application/json", forHTTPHeaderField: "Content-Type")

или

Parse.Cloud.httpRequest({
  url: 'http://www.example.com/',
  headers: {
    'Content-Type': 'application/json;charset=utf-8'
  }
})
Другие вопросы по тегам