Удалить конкретный объект с Parse.com
В моем облачном коде я хочу получить первый объект в классе "Сообщения". Затем я хочу получить некоторую информацию из этого объекта, отправить ее в другой класс и, наконец, удалить этот объект из класса "Сообщения", из которого я изначально извлек ее. Ниже мой код, однако он не работает. Как мне переделать это?
Должен ли я использовать другой подход, чем метод "уничтожить", такой как collection.remove?
Parse.Cloud.afterSave("sendMessage", function(Parse.Message, response) {
var body = null;
var senderName = null;
var senderId = null;
var randUsers = [];
var query = new.Parse.Query(Parse.Message);
query.find({
success: function(results){
body.push(results[1].get("messageBody"));
senderName.push(results[1].get("senderName"));
senderId.push(results[1].get("senderId"));
results[1].destroy({
success: function(results[1]){
//the first object in the class "Messages" was deleted
}, error: function(results[1], error){
//the first object was not deleted
}
});
response.success(getUsers);
}, error: funtion(error){
response.error("Error");
}
});
});
чтобы избежать путаницы: "getUsers" - это произвольный вызов функции.
2 ответа
Дубликат вопроса с записью;
Запрос всего класса против первого объекта в классе
Однако, если вы хотите удалить конкретный объект, вам нужно что-то, что однозначно идентифицирует объект. Затем одним из способов является использование идентификатора объекта Parse для удаления объекта из класса.
Чтобы удалить объект через облако, вам нужно использовать метод destroy в ParseObject. Но если у вас есть несколько объектов, вы можете использовать метод destroyAll. Ниже приведен пример метода удаления ParseObject в API JavaScript.
var yourClass = Parse.Object.extend("YourClass");
var query = new Parse.Query(yourClass);
query.get("yourObjectId", {
success: function(yourObj) {
// The object was retrieved successfully.
yourObj.destroy({});
},
error: function(object, error) {
// The object was not retrieved successfully.
// error is a Parse.Error with an error code and description.
}
});
Надеюсь, это поможет, С уважением.
func deleteImage(imageId: String) {
let query = PFQuery(className: "ClassName")
query.whereKey("imageId", equalTo: "\(imageId)")
query.findObjectsInBackground {
(objects:[PFObject]?, error: Error?) -> Void in
if error == nil && (objects != nil) {
for object in objects! {
object.deleteInBackground()
print("object deleted")
}
}
}
}
Некоторые изменения в выше:
var missingDataQuery = new Parse.Query(missingDataObj)
missingDataQuery.equalTo('projectId',project);
var getMissingData = missingDataQuery.find({
success: function(yourObj) {
console.log('here')
yourObj[0].destroy({})
},
error: function(object, error) {
}
});
Здесь мы получаем объект, а затем уничтожаем его.