我对Parse服务不是很熟悉。我只是想知道,是否有可能将一些对象字段保存在本地存储中,而不与云同步?
假设我们在网络上有一个"Quote“对象,我们希望在应用程序和云之间保持报价同步。我们在我们的应用程序中有最喜欢的部分,可以单独保存用户最喜欢的报价。
另外,我们不想让收藏夹与云保持同步。我们是否可以在本地数据存储上有像"starred“这样的属性/字段,并将此属性/字段仅保留在本地存储中,并防止其与云同步?
如果这是可能的,请告诉我如何做到这一点的例子。谢谢。
发布于 2015-05-07 01:55:18
我现在在使用parse时也遇到了同样的问题。
在我的案例中,我有一个餐厅目录应用程序,允许用户将一些餐厅加入书签,以便离线查看它们。因此,我希望在本地存储每个餐厅的“书签”标志。这样的标志属于一个单独的用户,我不想将这个标志与parse类同步。出于同步的目的,我已经在User类中建立了与restaurants的关系。
我发现,如果我简单地将一些数据放到没有存储在云中的关键字(即不是类的列)的ParseObject中,并将此对象固定在本地,这些数据将保存在本地,并会注意到已同步,直到我有意将餐厅与云同步。但只有在查询'fromLocalDatastore()‘时,才能使用ParseObject检索此类本地数据。下面是我的代码:
我在这里给一家餐厅加了书签
ParseUser user = ParseUser.getCurrentUser();
restaurant.setBookmarked(doBookmark);
if (doBookmark) {
UserHelper.bookmarksRelation(user).add(restaurant);
restaurant.pinInBackground(ParseRestaurant.BOOKMARKED_PIN);
} else {
UserHelper.bookmarksRelation(user).remove(restaurant);
restaurant.unpinInBackground(ParseRestaurant.BOOKMARKED_PIN);
}
user.saveEventually();ParseRestaurant:
public class ParseRestaurant extends ParseObject {
...
public static final String LOCAL_KEY_BOOKMARKED = "bookmarked";
...
public Boolean isBookmarked() {
return (containsKey(LOCAL_KEY_BOOKMARKED)) ? getBoolean(LOCAL_KEY_BOOKMARKED) : false;
}
public ParseRestaurant setBookmarked(Boolean bookmarked) {
put(LOCAL_KEY_BOOKMARKED, bookmarked);
return this;
}
...
}在结果中,当我查询餐厅的详细信息时,它的数据带有或不带有“书签”标志,正如我所需要的:
@Override public Observable<ParseRestaurant> getRestaurant(@NonNull final String restaurantId) {
return Observable.create(new RxUtils.OnSubscribeParse<ParseRestaurant>() {
@Override public ParseRestaurant just() throws ParseException {
ParseRestaurant restaurant = ParseRestaurant.createWithoutData(restaurantId);
try {
restaurant.fetchFromLocalDatastore();
Timber.d("Restaurant is cached locally :)");
return restaurant;
} catch (ParseException unnecessary) {
Timber.d("Restaurant is not cached locally :(");
}
restaurant.fetchIfNeeded();
restaurant.pinInBackground(ParseRestaurant.TEMPORARY_DETAILED_PIN);
return restaurant;
}
}).subscribeOn(Schedulers.io());
}https://stackoverflow.com/questions/27235694
复制相似问题