我有一个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类中检查该用户的地址列。
答案 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());
}
}
});