iOS& Parse.com:如何在调用Parse Cloud Code时设置用户?

时间:2015-04-28 22:49:07

标签: ios parse-platform cloud-code

我在Parse.com的Cloud Code中定义了一个函数。根据{{​​3}},request.usr应该是“正在发出请求的Parse.User。如果没有登录用户,则不会设置。”。

我从iOS调用我的方法,用户对象是“空”,因为所有属性都是未定义的。

我想在调用云代码时我不知道如何设置它。

以下是我的作品:

1)云代码

Parse.Cloud.define("userRatesMovie", function(request, response) {
  //Parameters: user, movieId, rating
  var user = request.user;
  var username = "nothing"
  var movieId = request.params.movieId;
  var rating = request.params.rating;

  var aux = "User: " + username + " Rated: " + movieId + " with a " + rating + " user " + user.username +":" +user.objectId;
  console.log(aux);

  //Fetch for previous rating for this user,movie pair
  response.success(aux);
});

现在我只是写作并返回一条日志行。

2)iOS代码

    //Test code
PFUser *pfUser = [PFUser currentUser];
NSLog(@"User Id:%@ Username:%@",pfUser.objectId, pfUser.username);
[PFCloud callFunctionInBackground:@"userRatesMovie"
                   withParameters:@{
                                    @"movieId":@"12345",
                                    @"rating":@"3"}
                            block:^(NSString *someString, NSError *error) {
                                if (!error) {
                                    NSLog(@"userRatesMovie:%@",someString);
                                }
                            }];

我首先检查我是否有PFUser,然后调用我的云代码

3)输出

    User Id:32P3Hwk1Hv Username:1NpFRFVPFJT45znXosx8g8Ay2
    userRatesMovie:User: nothing Rated: 12345 with a 3 user undefined:undefined

正如您所见,user.username和user.objectId未定义。

1 个答案:

答案 0 :(得分:2)

错误不是发送用户,而是检查它的代码:

user.username

这不是有效的Cloud Code语法。正确的代码应如下所示:

user.get("username")

然后一切正常......