Я хочу получить свои закрепленные элементы из локального хранилища данных, если интернет-соединение недоступно, но вместо элементов у меня есть только пустой список.
Мои закрепленные элементы используют ACL
s, поэтому я не знаюкак найти элементы в фоновом режиме, если я не могу использовать ACL
s в автономном режиме.Согласно документации:
Единственное отличие состоит в том, что вы не сможете получить доступ к каким-либо данным, защищенным списками ACL на основе ролей, поскольку роли хранятся на сервере.Чтобы получить доступ к этим данным, защищенным ACL на основе ролей, вам может потребоваться игнорировать ACL при выполнении запроса Local Datastore, вызвав метод ignoreAcls в запросе.Обратите внимание, что после вызова этого, вы не можете впоследствии использовать тот же запрос для загрузки из сети.
Я могу использовать getInBackground()
, но эта функция используется для получения точного элемента с точным objectId
из локальногохранилище данных.Это не запрос.
Это мой Parse API Call:
fun getItems(c: Context, itemState: Int, user: ParseUser, itemCallback: (List<ParseObject>, ParseException?) -> Unit){
val q = ParseQuery.getQuery<ParseObject>(ITEM_REPORT)
if (!isOnline(c)) {
q.fromLocalDatastore()
q.ignoreACLs()
}
q.whereEqualTo(ITEM_USR_ID, user.objectId)
q.whereEqualTo(ITEM_STATE, itemState)
q.include(POINTER_OBJECT)
q.include(POINTER_OBJECT_ORGANIZATION)
q.findInBackground { reportList, err ->
ParseObject.pinAllInBackground(reportList)
itemCallback(reportList, err)
}
}