Я пытаюсь вернуть значения из функций Parse.Cloud.define в облачный код, используя Parse.Я использую Parse 3.0.0 и могу заставить его возвращать значения из простых облачных кодов, но не сложных.
Я кодирую iOS на стороне клиента в Objective-C.
Вот функция облачного кода (мне все равно, если это небезопасно, я не изменяю ее)
Parse.Cloud.define("doStuff", (request) => {
const query = new Parse.Query(Parse.User);
query.equalTo("username", request.params.username);
query.first({useMasterKey:true})
.then((results) => {
Parse.User.requestPasswordReset(results.get("email"))
.then(() => {
return "good work";
}).catch((error) => {
});
})
.catch((error) => {
});
});
Это работает просто отлично, оно отправляет электронное письмо пользователю, как и ожидалось, используя поле имени пользователя.
В iOS я называю это так:
[PFCloud callFunctionInBackground:@"doStuff" withParameters:@{@"username" : cleanEntryData} block:^(NSString * object, NSError * error) {
if (!error) {
NSLog(@"success %@", object);
} else {
NSLog(@"error %@", error);
}
}];
Этот вызов работает в iOS, и электронная почта успешно отправляется пользователю для сброса пароля.Однако вот в чем проблема.
когда я звоню
NSLog(@"success %@", object);
значение в окне отладки Xcode равно
success (null)
Я ожидаю, что оно будет
success good work
Когда япростой облачный код, определяемый так:
Parse.Cloud.define("testing", (req) => {
return "very good";
});
с iOS примерно так:
[PFCloud callFunctionInBackground:@"testing" withParameters:@{@"nothing" : @"nothing"} block:^(NSString * object, NSError * error) {
if (!error) {
NSLog(@"success %@", object);
} else {
}
}];
, тогда я получаю результат в отладчике Xcode, который я ищу
success very good
Я не знаю, почему определение облачного кода "doStuff" не возвращает строку "хорошая работа", когда функция четко выполняется и отправляет сообщение электронной почты, как и должно.Я прочитал руководства по Parse 3.0.0 и JS 2.0.0, и они не очень описывают, как это должно работать с определениями Parse Cloud.Я не JS-кодер, я пишу код только на мобильных устройствах, поэтому я, вероятно, делаю глупости.Любая помощь будет отличной.Спасибо.