2015-08-12 3 views
0

Я использую Parse для хранения данных облака. Когда я запускаю приложение, у меня есть метод initializeData(), который извлекает данные, которые я хотел бы хранить локально. Например, я хотел бы получить и локально сохранить список вошедший в любимом Nannys пользователя:Связывание отношения пользователя в Parse

final UzurvUser user = UzurvUser.currentUzurvUser(); 
    user.getFavoriteNannys().getQuery().findInBackground(new FindCallback<UzurvUser>() { 
     @Override 
     public void done(final List<UzurvUser> nannys, ParseException e) { 
      if (e == null) { 
       UzurvUser.unpinAllInBackground(NANNYS_GROUP_LABEL, 
         new DeleteCallback() { 
          public void done(ParseException e) { 
           if (e == null) { 
            UzurvUser.pinAllInBackground(NANNYS_GROUP_LABEL, nannys); 
           } else { 
            e.printStackTrace(); 
           } 
          } 
         }); 
      } else { 
       e.printStackTrace(); 
      } 
     } 
    }); 

Затем я получить их позже:

ParseQuery<UzurvUser> query = ParseQuery.getQuery(UzurvUser.class); 
query.fromPin(MainActivity.NANNYS_GROUP_LABEL); 
mFavoriteNannys = new ArrayList<>(query.find()); 

Вопрос заключается в том, что теперь, если я хочешь удалить няню из пользовательского отношения и сохранить его в облаке, я буду иметь, чтобы обновить и локальную копию списка няни, и сохранить текущий пользователь:

ParseRelation<UzurvUser> pr = UzurvUser.currentUzurvUser().getFavoriteNannys(); 
pr.remove(nannyToRemove); 
mNanny.unpinInBackground(MainActivity.NANNYS_GROUP_LABEL); 
UzurvUser.currentUzurvUser().saveEventually(); 

Является ли это " правильный "способ синхронизации d ата, как я описал? Мне не нужно обновлять список nannys и сохранять пользователя каждый раз, когда я добавляю или удаляю няню из пользовательских отношений, но мне все равно хотелось бы иметь локальную копию всех этих nannys этого пользователя.

ответ

1

Если вы хотите получить тот же список в обоих местах, свой локальный db и ваш сервер, я думаю, что вы должны отправить запрос на добавление/обновление/удаление этого элемента на сервере с помощью AsynTask или другого метода, и затем, когда вы получите подтверждение того, что это изменение было выполнено на сервере, добавьте/обновите/удалите свой элемент в локальном db.

Смежные вопросы