gpt4 book ai didi

android - ParseObject.pinall(List<...>) 不适用于 SyncService

转载 作者:行者123 更新时间:2023-11-30 02:31:59 24 4
gpt4 key购买 nike

我正在使用 Android 同步服务将我的 ParseObjects 从云与 localDatastore 同步,但是当我调用 ParseObject.pinAll(...); 时没有抛出异常,但稍后在应用程序中,如果我查询 localDS,我看不到任何“固定”对象。

我的 onPerformSync 代码:

//primeiro achar os novos/alterados no cel
final ParseQuery<ParseObject> queryMobile = new ParseQuery<ParseObject>("Debit");
queryMobile.fromLocalDatastore();
queryMobile.whereGreaterThanOrEqualTo("updated_at", syncDate);
queryMobile.whereNotEqualTo("debitStatus", DebitStatus.CLOSED.ordinal());

//depois os online e comparar
final ParseQuery<ParseObject> queryServer = new ParseQuery<ParseObject>("Debit");
queryServer.whereGreaterThanOrEqualTo("updated_at", syncDate);
queryServer.whereNotEqualTo("debitStatus", DebitStatus.CLOSED.ordinal());

//pega os amigos e notificações online
ParseQuery<ParseObject> queryServerFriends = new ParseQuery<ParseObject>("Friend");
queryServerFriends.whereEqualTo("user_to", ParseUser.getCurrentUser());
//queryServer.whereGreaterThanOrEqualTo("updated_at", syncDate);
//queryServerFriends.whereEqualTo("has_answered",true);

try {
List<ParseObject> temp = null;
temp = queryServer.find();
ParseObject.pinAll(temp);
Log.d("sync","Debits synced: "+temp.size());
increaseSyncSuccess(syncResult, temp.size());
temp = queryServerFriends.find();
ParseObject.pinAll(temp);
Log.d("sync","Friends synced: "+temp.size());
increaseSyncSuccess(syncResult,temp.size());

}catch (ParseException e) {
if(syncResult != null && syncResult.stats !=null)
syncResult.stats.numIoExceptions++;
e.printStackTrace();
Log.e("sync",e.getMessage());
}

调试信息:

11-30 21:56:06.481 26315-26346/com.maddogs.mymoney:sync D/sync﹕ Debits synced: 0 11-30 21:56:06.870 26315-26346/com.maddogs.mymoney:sync D/sync﹕ Friends synced: 2

如果我查询本地我得不到结果:

ParseQuery<ParseUser> users = ParseUser.getQuery();
users.fromLocalDatastore();
users.whereNotEqualTo("objectId", ParseUser.getCurrentUser().getObjectId());
users.findInBackground(new FindCallback<ParseUser>() {
@Override
public void done(List<ParseUser> parseUsers, ParseException e) {
friends.addAll(parseUsers);
adapter.notifyDataSetChanged();
}
});

parseUsers 返回 0 个结果。

这里有什么技巧还是我遗漏了什么?

谢谢!

--- 编辑 ---

我的 Friend 类有一个指向用户类的指针,因此根据 where 查询,我需要从哪里获取用户。我的问题是,我需要在这里调用 user.fetchIfNeeded() 吗?

最佳答案

你正在查询 ParseUser,但是你固定的是 Debit 和 Friend

如果这些对象包含指向用户的指针,则需要将其包含在查询中

关于android - ParseObject.pinall(List<...>) 不适用于 SyncService,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27219790/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com