【问题标题】:Android Parse database queryAndroid Parse 数据库查询
【发布时间】:2015-09-02 08:39:59
【问题描述】:

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

我正在将数据写入下面的表中。

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 类中检查该用户的地址列。

【问题讨论】:

  • 你真的需要显示what you tried.....
  • 抱歉之前忘记添加代码了,现在已经添加了。请给我你的意见

标签: android database parse-platform


【解决方案1】:

对于 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());
            }
       }
});

【讨论】:

    猜你喜欢
    • 2018-09-19
    • 2015-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-29
    相关资源
    最近更新 更多