我在自定义ParseUser对象中有一个名为Approved的自定义布尔字段。我们通过网络应用将此字段从false更改为true。根据文档,我应该能够在使用fetchInBackground()更改标志后更新currentUser,如下所示:
ParseUser.getCurrentUser().fetchInBackground(new GetCallback<ParseObject>() {
@Override
public void done(ParseObject parseObject, ParseException e) {
Log.v("qwer", "fetched User: " + ((CustomUser)parseObject).isApproved());
}
});
但即使已批准的标志已设置为true,从服务器返回的结果始终为false。除非我注销并再次登录,否则currentUser和相应的字段将与服务器同步。
为什么fetchInBackground()不能为本地用户工作,如果我不正确地使用它,我该如何更新currentUser。
答案 0 :(得分:1)
请参阅this链接,关键是要使用pinInBackground
,并在Parse.enableLocalDatastore(yourContext);
课程中启用Application
的本地数据存储。
更新
不确定这是否会对您有所帮助,但我确实有类似的情况:
我做一个典型的user.put("userVerified", true);
然后user.saveInBackground
来保存一个指示用户是否已经过验证的布尔值,然后在下一个活动中我使用user.getBoolean("userVerified")
来检索标志...这是你可能会考虑的事情吗?