Как получить прикрепленный элемент, если у пользователя нет подключения к интернету - PullRequest
0 голосов
/ 14 марта 2019

Я хочу получить свои закрепленные элементы из локального хранилища данных, если интернет-соединение недоступно, но вместо элементов у меня есть только пустой список.

Мои закрепленные элементы используют 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)
            }
        }
...