У меня возникла проблема при запуске функции в Cloud Code. Предполагается проверить существование объекта, и, если она действительно существует, создайте нового пользователя:Не удается сохранить объект в облачном коде
Parse.Cloud.define("createUser", function(request, response) {
// Query the existing company by id
var query = new Parse.Query(Parse.Object.extend("Company"));
query.equalTo("objectId", request.params.company.existing.id);
query.find().then(function(result){
var user = new Parse.User();
user.set("username", request.params.username);
user.set("password", request.params.username);
user.set("email", request.params.email);
user.set("permissions", ["User"]);
var company = result[0];
user.signUp(null, {
success: function(user){
// Asign company ACL for User write permission
var cACL = company.getACL();
cACL.setWriteAccess(user.id, true);
company.setACL(cACL);
// Save company
company.save();
console.log(company);
// Establish user-company relationship
var cRelation = user.relation("associated");
cRelation.add(company);
// Save user
user.save();
console.log(user);
// Finish
response.success(user);
},
error: function(user, error){
response.error(JSON.stringify({code: -8000, message: "User creation failed"}));
}
});
}, function(error){
response.error(JSON.stringify({code: -8001, message: "Invalid company"}));
});
});
Я первый запрос Анализировать для существования указанного объекта. Если он существует, я создаю нового пользователя с полученными параметрами. В блоке завершения создания пользователя я назначаю соответствующие ACL ( компании), а затем сохранить их. Вот когда я столкнулся с первой проблемой: ACL не сохранены (отмечен на приборной панели). I console.log
компания для целей отладки и показывает, что ACL установлены правильно. Поэтому я предполагаю, что это должна быть проблема с сохранением .
ПРИМЕЧАНИЕ: Пользователь создан, но все, что я пытаюсь сделать позже, не работает.
Позже я добавить этот объект отношений, ранее определенной в приборной панели, но у меня такая же проблема с этим: отношения не приходит в приборную панель, несмотря на то, когда я console.log
объект он показывает что отношения были правильно установлены.
Я потерялся здесь. Я не понимаю, почему это не работает, и я прочитал тонны онлайн-документации и до сих пор не могу найти ответ.
Для тех, кто читает это в 2017 году, я хотел бы упомянуть, что 'Parse.Cloud.useMasterKey()' прекращено, и вы должны передать '{useMasterKey: true}' в качестве опции для любой функции, которую вы хотите запустить приподнят. –