我有一个 Parse Dashboard 帐户,其中有一个名为 PointsCollected 的类。对于那个类,我有字段作为设备,获得点数。
我的问题是我需要根据设备检索积分。我正在从电话管理器获取设备 ID。但是如何根据设备 ID 进行查询以检索点,如果没有找到行,则在数据库中添加一个零点的行。
我有一个 Parse Dashboard 帐户,其中有一个名为 PointsCollected 的类。对于那个类,我有字段作为设备,获得点数。
我的问题是我需要根据设备检索积分。我正在从电话管理器获取设备 ID。但是如何根据设备 ID 进行查询以检索点,如果没有找到行,则在数据库中添加一个零点的行。
如果您将用户放在同一个表中,则可以执行此操作。
ParseQuery<ParseObject> query = ParseQuery.getQuery("PointsCollected");
query.whereEqualTo("currentUser", currentUset.getObjectId());
// this will find the user.
// then find the first instance
query.findFirstInBackground(new FindCallback<ParseObject>() {
public void done(List<ParseObject> object, ParseException e) {
if (e == null) {
textView.setText(object.getString("device"));
} else {
Log.d(TAG, "Error: " + e.getMessage());
}
}
});
这是新想法....这应该可行。
// At the end we want to get the points.
final int points;
//First, lets get the ID of the device and store that into a veriable.
TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
final String deviceId = telephonyManager.getDeviceId().toString();
//Then lets query the PointsCollected database.
ParseQuery<ParseObject> query = ParseQuery.getQuery("PointsCollected");
// Then we want to see where the DeviceID (from the variable) matches the device from the database.
// "device" is the row in the database.
// deviceID is the varible that is storing that users device ID.
query.whereEqualTo("device", deviceId);
//Then we get the first instance...
query.getFirstInBackground(new GetCallback<ParseObject>() {
public void done(ParseObject object, ParseException e) {
// you want to do a check on the ParseException here as well.
if (object == null) {
Log.d("nothing found", "let's go ahead and create a new object.");
//ADD THE OBJECT AS A NEW OBJECT!!!!
} else {
points = object.getInt("pointsObtained");
Log.d("points found", points + "");
}
}
});