Я не могу обновить запись в Parse; Ошибка: "объект не найден для обновления (Код: 101, Версия: 1.2.16)"
Я использую Parse в качестве моего backend для одного из моих родных приложений для iOS.
Я не могу обновить запись в таблице в Parse. Сначала я запрашиваю объект, который я хочу его обновить. Итак, массив "objects" возвращает 1 запись, но когда я хочу ее обновить, я получаю следующую ошибку;
"объект не найден для обновления (Код: 101, Версия: 1.2.16)"
Итак, как вы думаете, я не могу обновить запись в Parse? (Ниже мой код)
Спасибо,
Е.
PFQuery *query = [PFQuery queryWithClassName:@"askedFriends"];
[query whereKey:@"questionID" equalTo:aqDt.questionID];
[query whereKey:@"fbID" equalTo:FbId];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
NSArray *postArray = objects;
PFObject *post = postArray.lastObject;
[post setObject:@"sentReply" forKey:btnSelection];
[post saveInBackground];
}
Ответы
Ответ 1
У меня была та же проблема, и это столбец ACL для этой конкретной таблицы классов. Убедитесь, что в столбце ACL есть что-то подобное.
{"*":{"read":true},"tyb5CcKwBU":{"write":true,"read":true}}
"*" позволяет читать каждому.
Вы можете установить клиентскую сторону, используя что-то вроде
ParseACL acl = new ParseACL(<YourObject>);
acl.setPublicReadAccess(true);
Ответ 2
Код ошибки 101 в Parse означает:
101: Объект не существует или имеет неправильный пароль.
Очевидно, что ваш объект существует, поскольку postArray возвращает 1 запись, поэтому мы должны посмотреть на что-то связанное с паролем.
Возможно, ваш объект "askFriends" имеет объект PFACL, который отключает выпуск этого объекта, если вы не входите в систему с ассоциированным PFUser.
На веб-сайте Parse перейдите в Dashboard, затем Data Browser и выберите свой класс "askFriends".
Существует столбец ACL, вы должны его проверить.
Ответ 3
Ошибка: "объект, не найденный для обновления (код: 101, версия: 1.2.16)", добавьте, когда вы попытаетесь сохранить объект, у которого у пользователя нет доступа ACL.
Чтобы пользователь мог изменить объект, вам нужно установить разрешение PFACL при создании объекта:
Для конкретного пользователя:
PFObject *object = /*the object you want to save*/
NSString *userID = /*the objectID of the user you want to let perform modifications later*/
PFACL *groupACL = [PFACL ACL];
[groupACL setWriteAccess:YES forUserId:userID];
object.ACL = groupACL;
Для всех пользователей:
PFObject *object = /*the object you want to save*/
PFACL *groupACL = [PFACL ACL];
[groupACL setPublicWriteAccess:YES];
object.ACL = groupACL;
Ответ 4
Использование createWithoutData для установки ссылочного объекта помогло мне решить эту проблему.
myObject.put("item", ParseObject.createWithoutData(<SUB CLASS>.class, <Your object item>));
myObject.saveInBackground();
Ответ 5
Я исправил эту проблему, изменив строку ACL на объекты синтаксического анализа, которые я хочу изменить, и исправил мою проблему:
{"*":{"read":true,"write":true}}
Надеюсь, что это поможет.