首页 > 解决方案 > 如果用户没有互联网连接,我如何获得固定项目

问题描述

如果互联网连接不可用,我想从本地数据存储中获取我固定的项目,但我得到的只是空列表而不是项目。

我的固定项目正在使用ACLs,所以如果我不能ACL在离线模式下使用 s,我不知道如何在后台查找项目。根据文档:

唯一的区别是,由于角色存储在服务器上,因此您将无法访问受基于角色的 ACL 保护的任何数据。要访问受基于角色的 ACL 保护的数据,您可能需要在执行本地数据存储区查询时忽略 ACL,方法是在查询上调用 ignoreAcls 方法。请注意,调用此函数后,您不能随后使用相同的查询从网络加载。

我可以使用,但此功能用于从本地数据存储getInBackground()中获取准确的项目。objectId这不是查询。

这是我的 Parse API 调用:

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)
            }
        }

标签: androidkotlinparse-platform

解决方案


推荐阅读