【问题标题】:In Parse, does unpinning objects from local datastore also remove the objects they point?在 Parse 中,从本地数据存储中取消固定对象是否也会删除它们指向的对象?
【发布时间】:2014-07-21 06:27:45
【问题描述】:

在 Parse SDK 文档中,它声明固定指向另一个对象的对象,也将固定该目标对象:https://parse.com/docs/android_guide#localdatastore-pin

与保存一样,这递归地存储每个对象和文件 gameScore 指向,如果它是从云中获取的。每当 您保存对对象的更改,或从 Parse 获取新更改, 数据存储中的副本将自动更新,因此您无需 担心它。

但它没有说明的是,您以后如何取消固定第一个对象以及它指向的任何对象? (基本上是反向交易),以及从云端删除这些对象?

你愿意:

A.) 取消固定引用第一个对象的所有对象,然后使用 DeleteEventually 删除目标对象

B.) 首先取消固定所有对象,然后会自动删除目标对象?

另外,如果一个对象固定在数据存储中,但也保存到云中(从不取消固定),取消固定是否也会将其从云中删除?还是需要先取消固定然后删除,还是删除/取消固定?

编辑:

如果我理解 Fosco 的回复,我需要执行以下操作:

final ParseQuery<ParseObject> findMoves = ParseQuery.getQuery("bjjMatchMoves");
findMoves.fromPin("BJJMove");
findMoves.findInBackground(new FindCallback<ParseObject>() {

    @Override
    public void done(final List<ParseObject> moves, final com.parse.ParseException e) {

    if (e == null) {

    // First, unpin all objects that reference the main object, which should Remove the main object as well.
    ParseObject.unpinAllInBackground("BJJMove", moves, new DeleteCallback() {
        public void done(ParseException e) {
        if (e != null) {
            // There was some error.
            return;
        }
        // objects have Now been unpinned. Now Delete them from the cloud

        ParseObject.deleteAllInBackground(moves, new DeleteCallback() {
            public void done(ParseException e) {
                if (e != null) {
                    // There was some error.
                    return;
                }

                // objects have Now been unpinned and deleted, remove the main object from the cloud
            }
        });
        }
    });
    }
    }
});

【问题讨论】:

    标签: android parse-platform pinning


    【解决方案1】:

    所以,首先要做的事情是……取消固定不会从“云”中删除对象。它只是要删除本地缓存的版本。

    其次,是的,如果您取消固定引用其他对象的根对象,其他对象也将被取消固定(除非它们已被单独固定)。

    如果你想删除一个对象,你应该删除它,这也应该取消固定它。

    【讨论】:

    • 福斯科,你能检查一下编辑,看看这是不是你在说的?如果我理解正确,并使用解析示例,假设我将 5 个 cmets 指向一个帖子。如果我取消固定所有 cmets,那将取消固定该帖子。然后我可以从云端删除 cmets 和帖子。
    • 感谢您的确认。回答接受。感谢您的帮助!
    • @Fosco API 是否支持完全擦除本地数据存储的方法?出于某种原因,我很难让我的对象取消固定并且尚未找到原因,但如果我可以发出命令以删除数据存储中的所有对象而不管 pin 值如何,那对我来说将是一个完美的解决方案。跨度>
    • 不,我不这么认为,但你可以按 className 查询,然后 unPinAll 的结果。
    猜你喜欢
    • 1970-01-01
    • 2021-10-16
    • 2013-04-16
    • 1970-01-01
    • 2012-08-05
    • 2021-02-04
    • 1970-01-01
    • 2016-06-07
    • 2015-04-12
    相关资源
    最近更新 更多