2

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
            }
        });
        }
    });
    }
    }
});
4

1 に答える 1

2

したがって、まず最初に...固定を解除しても、「クラウド」からオブジェクトが削除されるわけではありません。ローカルにキャッシュされたバージョンを削除するだけです。

次に、はい、他のオブジェクトを参照するルート オブジェクトを固定解除すると、他のオブジェクトも固定解除されます (個別に固定されていない限り)。

オブジェクトを削除する場合は、削除する必要があります。これにより、固定も解除されます。

于 2014-07-21T06:44:37.890 に答える