我正在使用Parse后端为我的Android应用程序。我需要在数据库中查询具有特定字符串值的字段的记录。以下是Parse代码
strObjectId是使用Parse ObjectId初始化的String,如下所示
String strObjectId = MyParseObject.getObjectId();
解析代码
ParseQuery<ParseObject> query = ParseQuery.getQuery("MyDataTable");
query.whereEqualTo("code", Code);
query.getFirstInBackground(new GetCallback<ParseObject>()
{
public void done(ParseObject object, ParseException e)
{
if (object == null)
{
return;
}
else
{
ShowToast("Record found!");
}
}
});
问题是,当代码&#39;代码&#39;在运行查询
之前,硬编码如下 String Code = "krErZgz9Is";
但是当Code被分配Parse ObjectId时,它不起作用,如下所示
String Code = strObjectId;
显然,数据表确实有一个记录了&#39;代码&#39;有价值的字段&#39; krErZgz9Is&#39;
您的帮助将不胜感激
由于
答案 0 :(得分:0)
您是否尝试打印出strObjectId?如果您的对象尚未保存在Parse中,或者该对象未从Parse加载。它没有对象Id。
另外,您是否尝试直接检查与objectId的相等性?
query.whereEqualTo("code", MyParseObject.getObjectId());
答案 1 :(得分:0)
我已经为我工作了
我创建了一个EditText并包含了我想在查询中找到匹配项的文本。如果您不想展示它,请尝试将其隐藏在布局中。
EditText editText = (EditText) findViewById(R.id.editText);
editText.setText(strObjectId);
ParseQuery<ParseObject> query = ParseQuery.getQuery("MyDataTable");
query.whereEqualTo("code", editText.getText().toString());
query.getFirstInBackground(new GetCallback<ParseObject>()
{
public void done(ParseObject object, ParseException e)
{
if (object == null)
{
return;
}
else
{
ShowToast("Record found!");
}
}
});
我不明白为什么删除getText()函数不起作用所以你最好保持这种方式。