#parse-platform
#parse-платформа
Вопрос:
Я загружаю изображение через REST API и получаю ответ, как показано ниже
{
"url": "http://files.parsetfss.com/346a0978-68c7-4d08-a446-62f7422469e7/tfss-8b131ff0-5fd0-4dce-92e8-b7b94da5db9e-pic.jpg",
"name": "tfss-8b131ff0-5fd0-4dce-92e8-b7b94da5db9e-pic.jpg"
}
Я хочу связать это изображение с Promotion
объектом. У меня также есть Location
объект, который содержит массив Promotion
s. Вот мой код:
function promiseToAddPromotionToLocation (locationID, promotion) {
var query = new Parse.Query("Location");
return query.get(locationID).then(function (location) {
var promotionObject = promotionObjectFromJSON(promotion);
location.add("promotions", promotionObject);
return location.save();
}, function (error) {
return Parse.Promise.error(error);
});
}
function promotionObjectFromJSON (promotion) {
var Promotion = Parse.Object.extend("Promotion");
var promotionObject = new Promotion();
if ("message" in promotion) {
promotionObject.set("message", promotion.message);
}
//This causes an error: Uncaught Tried to save an object containing an unsaved file.
if ("photo") {
promotionObject.set("photo", promotion.photo);
}
return promotionObject;
}
Когда я закомментирую часть настройки photo, она сохранится promotion
должным образом, но когда я пытаюсь установить файл, выдается сообщение об ошибке, в котором говорится, Uncaught Tried to save an object containing an unsaved file.
как я могу решить эту проблему?
Кстати, promiseToAddPromotionToLocation
вызывается с параметрами, приведенными ниже:
{
"locationID": "fvOiAsoogc",
"promotion":{
"message":"Some text",
"photo":{"name": "tfss-8b131ff0-5fd0-4dce-92e8-b7b94da5db9e-pic.jpg", "__type": "File"}
}
}
Комментарии:
1. Если я правильно понимаю, вы загружаете файл с помощью REST, а затем хотите прикрепить его к Parse. Объект, использующий JavaScript API?
2. Да, загружаю файл с помощью REST, а затем хочу присоединить его к синтаксическому анализу. Создайте объект с помощью облачной функции, которая вызывается REST. Эта облачная функция вызывает ‘promiseToAddPromotionToLocation’.
3. Я не знаю ни одного способа сделать это, если только вы вручную не настроите внутренние компоненты
Parse.File
с информацией (именем и, возможно, URL-адресом), возвращаемой при загрузке REST. Нет документированного способа сделать это, поэтому он не будет поддерживаться.4. Но разве это не похоже parse.com/docs/rest#files-associating ? Итак, я загружаю файл. Затем я вызываю свою облачную функцию с именем файла из upload.
5. Ах, оказывается, что это задокументировано неправильно. Мне также нужно указать URL. parse.com/questions/image-association
Ответ №1:
Причина заключалась в том, что я передавал информацию о файле без url. Документы по связыванию файлов показывают, что для этого нужны только name
и type
. Однако это неверно. Для этого также требуется url
. Этот вопрос на форуме Parse раскрывает это.