Запись в объект класса Parse Installation, который не принадлежит текущему устройству. PF Установка iOS Swift 3 ИЗ КЛИЕНТСКОГО ПРИЛОЖЕНИЯ
Мне интересно, может ли пользователь читать / писать строки в классе Parse Installation, которые не принадлежат его устройству?
Я старался PFInstallation.query()
а также PFQuery(className: "Installation")
запросить класс установки, чтобы затем отредактировать и сохранить объекты. Первый метод вернул следующую ошибку: Clients aren't allowed to perform the find operation on the installation collection
, Второй не вернул никаких объектов в запросе.
Нельзя ли записать в строку класса установки, отличную от PFInstallation.current() устройства? Или кто-то знает правильный метод, как это сделать?
Также я пытаюсь сделать это из клиентского приложения, БЕЗ Мастер Ключа
Первый метод:
let query = PFInstallation.query()
query?.findObjectsInBackground(block: { (rows, error) -> Void in
if error == nil {
print(rows)
} else {
print("Error: ", error!)
}
})
Второй метод:
let inst = PFQuery(className: "Installation")
inst.whereKey("deviceType", equalTo: "ios")
inst.findObjectsInBackground(block: { (rows, error) -> Void in
if error == nil {
for row in rows! {
print("row: ", row)
}
} else {
print("ERROR: ", error!)
}
})
1 ответ
Имя класса _Installation
(Все зарезервированные имена таблиц / классов начинаются с подчеркивания _
)
Разрешенные операции в _Installation
( Подробнее здесь):
Get -> игнорирует CLP, но не ACL
Найти -> только главный ключ *
Создать -> игнорирует CLP
Обновление -> игнорирует CLP, но не ACL **
Удалить -> только главный ключ **
Добавить поле -> нормальное поведение
* Получайте запросы на установку, следуйте спискам ACL. Запросы на поиск без мастер-ключа не допускаются, если вы не указали установочный идентификатор в качестве ограничения.
** Запросы на обновление при установке соответствуют списку ACL, определенному при установке, но запросы на удаление доступны только для главного ключа. Для получения дополнительной информации о том, как работают установки, ознакомьтесь с разделом установки руководства REST.
Дополнительно:
Безопаснее и проще использовать имя класса, предоставленное самим классом, чем вводить строковое значение.
// Unsafe, can lead to typos, etc.
let query = PFQuery(className: "Installation")
// Better
let query = PFQuery(className: PFInstallation.parseClassName)
// Simpler
let query = PFInstallation.query()