在Parse SDK relation部分中,它提供了以下代码:
// Create the post
ParseObject myPost = new ParseObject("Post");
myPost.put("title", "I'm Hungry");
myPost.put("content", "Where should we go for lunch?");
// Create the comment
ParseObject myComment = new ParseObject("Comment");
myComment.put("content", "Let's do Sushirrito.");
// Add a relation between the Post and Comment
myComment.put("parent", myPost);
// This will save both myPost and myComment
myComment.saveInBackground();
这很棒,而且很有效。如果你固定" MyComment"到本地数据存储区,它甚至可以保存" MyPost"对象也是。似乎存在一个问题,那就是父对象(Post)没有被固定。
我有以下代码:
ParseQuery<ParseObject> bjjHistoryCheck = ParseQuery.getQuery("bjjMatchMoves");
// bjjHistoryCheck.fromPin("bjjMatches");
// bjjHistoryCheck.whereEqualTo("className", "bjjMatches");
bjjHistoryCheck.fromLocalDatastore();
// bjjHistoryCheck.whereEqualTo("matchLoser", "Debbie Sanchez");
bjjHistoryCheck.countInBackground(new CountCallback() {
public void done(int count, ParseException e) {
Log.i("parse Exception", e.getMessage());<---------
long e1 = new DateTime().getMillis();
Log.i("time to find user matches: ",
String.valueOf(e1 - s1) + " ms + count: " + String.valueOf(count));
if (count < 1) {
noHistoryDialog();
} else {
final Intent intent = new Intent(getActivity(), Dialog_History.class);
intent.putExtra("classToShow", 1);
startActivity(intent);
}
这是按预期工作的,因为我固定了&#34; bjjMatchMoves&#34;,就像我的评论一样,我得到了本地数据存储中有多少移动的计数。如果我替换了移动查询,其中一个用于匹配(帖子),则无法找到任何内容。你可以看到一些注释掉的线......我试着用我能想到的每一种方式进行搜索......没什么。如果我删除了localdatastore选项,那么它会成功找到云中的记录。
带箭头的行在LogCat中显示以下内容:
07-15 22:58:26.018:我/解析异常(24145):试图获取一个 对象脱机,从未保存到脱机缓存中。
所以我问你们所有人......你们如何将评论和帖子都固定下来?可能吗?我现在想到这样做的唯一方法是一种肮脏的方式:在Activity firs启动时创建Match对象,然后立即将其保存在后台。一旦保存,重新检索它,然后用输入的任何信息更新它,加上记录向它记录的任何动作,但如果有一种方法来指定匹配并且移动被固定,那将更加清晰。
答案 0 :(得分:3)
这最终成为数据存储区的问题,由于某种原因,数据存储区中存在一些空对象。一旦我重置数据存储区(清除的应用程序数据),固定就会按预期工作。我还不知道如何创建空对象(没有任何数据,甚至没有objectId)。