如何从解析数据库中为android

时间:2017-08-01 17:09:50

标签: android parse-platform back4app

我有一个Parse Dashboard帐户,其中我有一个名为PointsCollected的类。对于那个类,我有字段作为设备,pointsObtained。

我的问题是我需要根据设备检索点数。我从电话管理员处获取设备ID。但是如何根据设备ID进行查询以检索点,如果没有找到行,则在数据库中添加一个零点的行。

1 个答案:

答案 0 :(得分:0)

如果将用户放在同一个表中,则可以执行此操作。

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 + "");
            }
        }
    });