Подтвердить что ты не робот

Я не могу обновить запись в 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];
}
4b9b3361

Ответ 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}}

Надеюсь, что это поможет.