android - 如果用户没有互联网连接,我如何获得固定项目
问题描述
如果互联网连接不可用,我想从本地数据存储中获取我固定的项目,但我得到的只是空列表而不是项目。
我的固定项目正在使用ACL
s,所以如果我不能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)
}
}
解决方案
推荐阅读
- ios - SIGABRT 尝试使用 URLSession 加载数据
- reactjs - React Redux 测试
- active-directory - 哪些 Active Directory 属性映射到用户所属的组
- facebook-graph-api - 您如何处理您所引用的图形 API FB 版本与实际引用的内容之间的差异?
- regex - 正则表达式替换空间
- javascript - jquery/javascript中页面宽度的变化
- python - 在内容不一致的行中应用数据框列中的函数
- angular - 传递数组作为路由参数
- android - android studio - 构建失败输入长度= 1
- python - 找不到页面 404 django