在Parse中,如果我想将它与云同步,我是否需要首先取消固定对象?

时间:2016-01-18 10:52:52

标签: android parse-platform

不幸的是,关于此事的official Parse documentation非常不清楚。它告诉" 当一个对象被固定时,每次通过提取或保存新数据来更新它时,本地数据存储区中的副本将自动更新。你根本不需要担心它。",所以我能理解它意味着如果我这样做

List<GameScore> list;
// ...
ParseObject.pinAllInBackground(list);
GameScore.saveAllInBackground(list);

然后我这样做

ParseQuery.getQuery(GameScore.class).findInBackground(new FindCallback<GameScore>() {
    @Override
    public void done(final List<GameScore> objects, ParseException e) {
        // show them ...
    }
);

我本地存储的固定数据应该自行更新。

然而,只有two paragraphs以下,Parse团队展示了一种类似这样的方法:

public void getDataFromParse() {
    ParseQuery.getQuery(GameScore.class)
        .findInBackground(new FindCallback<GameScore>() {
            @Override
            public void done(final List<GameScore> objects, ParseException e) {
                ParseObject.unpinAllInBackground(oldPinnedData, new DeleteCallback() {
                    @Override
                    public void done(ParseException e) {
                        ParseObject.pinAllInBackground(objects, 
                            new SaveCallback() {
                                @Override
                                public void done(ParseException e) {
                                    // Show data
                                }
                            }
                        );
                    }
            });
        }
}

所以,基本上:首先,查询云上更新的Parse数据。然后,取消固定您拥有的旧数据。最后,钉上新的。

another one中,他们甚至不会取消旧的本地数据,但他们 确定刚从云端获取的新数据。

private void loadFromParse() {
    ParseQuery<Todo> query = Todo.getQuery();
    query.findInBackground(new FindCallback<Todo>() {
        @Override
        public void done(List<Todo> todos, ParseException e) {
            if (e == null) {    
                ParseObject.pinAllInBackground((List<Todo>) todos,
                    new SaveCallback() {
                        @Override
                        public void done(ParseException e) { 
                            if (e == null) {
                                // show them
                            }
                        }
                    });
            }
        }
    });
}

非常困惑,我不了解本地数据存储区与Parse云之间的关系。

就个人而言,我处于云总是胜过本地数据的情况。

0 个答案:

没有答案