2015-11-06 51 views
4

我有一个云代码函数,它创建一个GuestlistInvite将分析对象传递到云代码函数

Object。它需要一个phoneNumber,一个guestlist对象和一个guest对象。

我呼吁函数像这样:

Parse.Cloud.run('createGuestlistInviteForExistingUser', { 
    phoneNumber: phoneNumber, 
    guestlist: guestlist, 
    guest: user 
    }).then(function(guestlistInvite) { 
     response.success(successfully created guestlistInvite'); 
}); 

无论是guestlist和用户的指针。然而,在我的日志我收到一个错误:

Result: Error: Parse Objects not allowed here 

任何想法,为什么发生这种情况?

Parse.Cloud.define('createGuestlistInviteForExistingUser', function(request, response) { 

    var phoneNumber = request.params.phoneNumber; 
    var guestlist = request.params.guestlist; 
    var guest = request.params.guest; 

    var guestlistInvite = new Parse.Object("GuestlistInvite"); 

    guestlistInvite.save({ 
    phoneNumber: phoneNumber, 
    Guestlist: guestlist, 
    Guest: guest, 
    checkInStatus: false, 
    response: 0 
    }).then(function(guestlistInvite) { 
    console.log('guestlistInvite for existing user was created'); 
    response.success(guestlistInvite); 
    }, function(error) { 
    response.error('guestlistInvite was not saved'); 
    }); 

}); 

回答

4

无法将整个PFObject作为请求参数发送以调用云功能。

但是,您可以简单地通过传递PFObject的objectId作为请求参数,然后在云代码中编写代码以从Cloud代码中的objectId获取对象。

这里是什么样的云代码可能看起来像,利用空洞的许诺文档片断:

Parse.Cloud.define("myFunction", functoin(request, response) 
{ 
    var MyObject = Parse.Object.extend("MyObjectClass"); //You can put this at the top of your cloud code file so you don't have to do it in every function 
    var myObject = new MyObject(); 
    var myObjectId = request.params.myObjectId; 

    myObject.id = myObjectId; 
    myObject.fetch().then 
    (
     function(myObject) 
     { 
      //do stuff with it 
     }, 
     function(error) 
     { 
      response.error("There was an error trying to fetch MyObjectClass with objectId " + myObjectId + ": " + error.message); 
     } 
    ); 
});