gpt4 book ai didi

android - 即使在成功固定后从本地数据存储区查询时,ParseQuery 也会给出 0 个对象

转载 作者:搜寻专家 更新时间:2023-11-01 07:54:05 24 4
gpt4 key购买 nike

我正在使用 parse.com 的 Android SDK,遇到了一个特殊问题。

来自 fragment 的 onCreate:

  1. 从服务器获取对象。
  2. 将其固定。
  3. 从本地数据存储中获取对象。

这是 onCreate 的代码 fragment :

ParseObject myChatGroup = ParseObject.createWithoutData("ChatGroup", "mOJGWRiLPC");
myChatGroup.fetchInBackground(new GetCallback<ParseObject>() {
@Override
public void done(ParseObject chatGroup1, ParseException e) {
if (e == null) {
l.d("Fetched chat group: " + chatGroup1 + " from server");
chatGroup1.pinInBackground(new SaveCallback() {
@Override
public void done(ParseException e) {
if (e == null) {
l.d("Successfully pinned chat group");
ParseQuery<ParseObject> chatGroupParseQuery = new ParseQuery<>("ChatGroup");
chatGroupParseQuery.fromLocalDatastore()
.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> list, ParseException e) {
if (e == null) {
l.d("Found " + list.size() + " chat groups from local datastore");
} else {
e.printStackTrace();
}
}
});
} else {
e.printStackTrace();
}
}
});
} else {
e.printStackTrace();
}
}
});

这是日志:

Fetched chat group: ChatGroup { objectId: mOJGWRiLPC, name: Admin } from server
Successfully pinned chat group
Found 0 chat groups from local datastore

但这没有任何意义!我只是固定了一个对象,所以本地数据存储区中怎么会有 0 个对象。代码非常简单。 我做错了什么?可能是 SDK 的错误?
任何见解将不胜感激我几天来一直在努力寻找问题。

Parse 设置对我来说很好:

    ParseObject.registerSubclass(ChatGroup.class);
Parse.enableLocalDatastore(this);
Parse.initialize(this, AppProps.properties.appId,
AppProps.properties.clientKey);
ParseUser.enableRevocableSessionInBackground();
Parse.setLogLevel(Parse.LOG_LEVEL_DEBUG);

注意:

  • 在使用 ParseUser 对象尝试相同的逻辑时它工作正常。甚至我的其他类,比如我的 Message,这让我怀疑我的 ChatGroup 类有问题。
  • 我在 parse.com 数据浏览器上的 ChatGroup 类中添加了两个字段:name(String) 和 messages(Relation),具有对称为 Admin 的角色的读写权限。
  • 当浏览到实际的解析数据库(使用根访问权限)时,我发现数据库表 (ParseObjects) 确实包含我固定的行。但是以某种方式解析在查询时显示 0 个结果!

最佳答案

Parse 似乎不支持本地数据存储上的 ACL。因此,解决此问题的最简单方法是对查询执行 ignoreACLs() - 假设您确实在服务器端正确设置了角色/acls,因此无论您在本地固定什么,都应该已经获得许可。

关于android - 即使在成功固定后从本地数据存储区查询时,ParseQuery 也会给出 0 个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30694602/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com