В документации Parse SDK указано, что закрепление объекта, указывающего на другой объект, также закрепит этот целевой объект:https://parse.com/docs/android_guide#localdatastore-pin
Как и при сохранении, здесь рекурсивно сохраняются все объекты и файлы, на которые указывает gameScore, если они были получены из облака. Всякий раз, когда вы сохраняете изменения в объекте или получаете новые изменения из Parse, копия в хранилище данных будет автоматически обновляться, поэтому вам не нужно об этом беспокоиться.
Однако в нем не указано, как позже открепить первый объект, а также любые объекты, на которые он указывает? (по сути, отменить транзакцию) вместе с удалением этих объектов из облака?
Не могли бы вы:
A.) открепите все объекты, которые ссылаются на первый объект, затем используйте DeleteEventually, чтобы удалить целевой объект
or
Б.) сначала открепить все объекты, что затем автоматически удалит целевой объект?
Кроме того, если объект закреплен в хранилище данных, но также сохраняется в облаке (никогда не открепляется), удаляется ли он также из облака при откреплении? или его нужно сначала либо открепить, а затем удалить, либо удалить/открепить?
ИЗМЕНИТЬ:
Если я понимаю ответ Фоско, мне нужно сделать что-то вроде следующего:
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
}
});
}
});
}
}
});