Android Parse数据库查询

时间:2015-09-02 08:40:00

标签: android database parse-platform

我有一个Parse表,其中包含DB中的列作为用户名,电子邮件和地址。当用户登录时,我想检查用户是否填写了地址。如何在数据库中查询特定用户名并检查地址列是否为空?

我正在将数据写入下表。

final ParseObject testObject = new ParseObject("UserDetails");
testObject.put("UserName", userName);
testObject.put("Email", EmailStr);

testObject.saveInBackground(new SaveCallback() {

@Override
public void done(com.parse.ParseException e) {
    // TODO Auto-generated method stub
    if (e == null) {
        // Success!
     objectId = testObject.getObjectId().toString();

    } else {
        // Failure!
            }
            }
    });

当用户注册时,这种情况就会发生。注册后,当用户登录时,我想编辑该特定用户的UserDetails表中的一些数据。就像我想检查用户的地址列是否为空。如果它是空白我想强制用户填写它。这只是一个例子。一般来说,我想知道一种方法,我可以在其中修改特定行的某些列。

ParseQuery<ParseObject> query = ParseQuery.getQuery("UserDetails");
query.whereEqualTo("UserName", username);
query.findInBackground(new FindCallback<ParseObject>() {

        @Override
        public void done(List<ParseObject> arg0,
                com.parse.ParseException arg1) {
            // TODO Auto-generated method stub
            if (arg1 == null) {

                userExistance = true;
                if (arg0.size() == 1)
                    Tv1.setText(username + " exists in UserDeatils DB too");
                else if (arg0.size() > 1)
                    Tv1.setText(username
                            + " exists in UserDeatils DB multiple times");
                else
                    Tv1.setText(username
                            + " does not exist in UserDeatils DB");

            } else {
                Log.d("score", "Error: " + arg1.getMessage());
            }

        }
    });

我已经实现了上面的代码,在登录后检查用户是否存在于UserDetails表中。现在我想在UserDetails类中检查该用户的地址列。

1 个答案:

答案 0 :(得分:0)

对于UserDetails,找到用户名。然后,对于特定用户名,请检查ContactAddress列

ParseQuery<ParseObject> query = ParseQuery.getQuery("UserDetails");
query.whereEqualTo("UserName", username);

query.findInBackground(new FindCallback<ParseObject>() {

        @Override
        public void done(List<ParseObject> arg0,
                com.parse.ParseException arg1) {
            // TODO Auto-generated method stub
            if (arg1 == null) {

                ParseObject p = arg0.get(0);
                if(p.getString("ContactAddress")==null)
                    {
                       p.put("ContactAddress",address + " " +city +" " +state +" " +country);
                       p.saveInBackground();
                    }
            }
            else {
                Log.d("score", "Error: " + arg1.getMessage());
            }
       }
});