我正在尝试使用我的闹钟的Parse数据库创建Android应用程序,当我创建它们时一切看起来都不错但是由于某种原因我无法查询它们。
同一个用户正在创建警报。 Alarm对象的ACL是Public Read + Write。我试图在查询中只放置LOCAL_ID,但结果仍然相同。
我的代码:这里我正在创建我的ParseObject
public static ParseObject createNewParseAlarm(Alarm alarm) {
ParseObject parseAlarm = new ParseObject(ParseConstants.ALARM_CLASS);
parseAlarm.put(ParseConstants.KEY_LOCAL_ID, alarm.getId());
parseAlarm.put(ParseConstants.KEY_CREATED_BY, ParseUser.getCurrentUser());
parseAlarm = putValuesInAlarm(alarm, parseAlarm);
return parseAlarm;
}
在这里我要查询它:
public static void updateParseAlarm(final Alarm alarm) {
ParseQuery<ParseObject> query = ParseQuery.getQuery(ParseConstants.ALARM_CLASS);
query.whereEqualTo(ParseConstants.KEY_CREATED_BY, ParseUser.getCurrentUser());
query.whereEqualTo(ParseConstants.KEY_LOCAL_ID, alarm.getId());
query.getFirstInBackground(new GetCallback<ParseObject>() {
@Override
public void done(ParseObject object, ParseException e) {
if(e == null){
// Stuff happens when there is no error, but never actually get there yet as object is always null
});
} else {
Log.i(TAG, "There was an error: " + e.getMessage());
}
}
});
任何人都知道我做错了什么?
提前致谢!
答案 0 :(得分:0)
好的,我找到了它!
KEY_LOCAL_ID是一个long类型,并在上传到Parse时被舍入。将其更改为String并且它可以正常工作。