Parse.com没有保存ParseObjects

时间:2015-12-15 20:48:20

标签: android parse-platform

我正在尝试将文件上传到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

2 个答案:

答案 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());
        }
    }
});