我正在尝试将文件上传到Parse云。
final ParseFile parseFile = new ParseFile("somefile.png", data);
parseFile.saveInBackground(new SaveCallback() {
@Override
public void done(ParseException e) {
if (e == null){
ParseObject parseObject = new ParseObject("photo");
parseObject.setObjectId("someId");
parseObject.put("photo1", parseFile);
parseFile.saveInBackground(new SaveCallback() {
@Override
public void done(ParseException e) {
if (e==null){
Log.d(TAG, "Save done");
} else {
Log.d(TAG, "ex" + e.getMessage());
}
}
});
} else {
Log.d("USER", "file save ex" + e.getMessage());
}
}
});
这将成功运行并显示"保存完成"登录。但是当我去Parse仪表板时,我看不到任何数据变化。 我试图检索对象:
ParseQuery<ParseObject> query = ParseQuery.getQuery("photo");
query.getInBackground("someId", new GetCallback<ParseObject>() {
@Override
public void done(ParseObject object, ParseException e) {
if (e == null){
Log.d("USER", "OK");
} else {
Log.d("USER", "ex" + e.getMessage());
}
}
});
但我得到ParseException:no results found for query
。
答案 0 :(得分:1)
看起来你要保存parseFile两次而忘记保存你放置文件的parse对象。
更改此
parseFile.saveInBackground(new SaveCallback() {
@Override
public void done(ParseException e) {
if (e==null){
Log.d(TAG, "Save done");
} else {
Log.d(TAG, "ex" + e.getMessage());
}
}
});
到这个
parseObject.saveInBackground(new SaveCallback() {
@Override
public void done(ParseException e) {
if (e==null){
Log.d(TAG, "Save done");
} else {
Log.d(TAG, "ex" + e.getMessage());
}
}
});
快乐的编码。
答案 1 :(得分:0)
我认为你会做这样的事情:
// Create the ParseFile
ParseFile parseFile = new ParseFile("somefile.png", data);
file.saveInBackground();
ParseObject imgupload = new ParseObject("photo");
imgupload.put("ImageName", "somefile");
imgupload.put("photo1", parseFile);
imgupload.saveInBackground();
所以,你的查询:
ParseQuery<ParseObject> query = ParseQuery.getQuery("photo");
query.whereEqualTo("ImageName", "somefile");
query.findInBackground(new FindCallback <ParseObject>() {
@Override
public void done(ParseObject object, ParseException e) {
if (e == null){
Log.d("USER", "OK");
} else {
Log.d("USER", "ex" + e.getMessage());
}
}
});