解析Android SDK嵌套的saveInBackground不起作用

问题描述 投票:0回答:1

我正在使用带有解析后端的现有Android应用程序(localDatastore已启用但未在此上下文中使用),它具有以下对象结构:

对象A具有对象B的数组

对象B具有对象C的数组

我使用saveInBackground在反向顺序(C,B,A)中调用完成SaveCallback中的下一个saveInBackground来保存这个对象结构。对于内部两个工作正常,但顶级对象不保存。这是代码(frame,newStep和order是继承自ParseObject类的类的对象)

frame.saveInBackground(new SaveCallback() {
        @Override
        public void done(ParseException e) {
            if (e == null) {
                Log.i("Info", "frame.save callback OK");
                frames.add(frame);
                newStep.setTimeFrames(frames);
                newStep.saveInBackground(new SaveCallback() {
                    @Override
                    public void done(ParseException e) {
                        if (e == null) {
                            Log.i("Info", "newStep.save callback OK");
                            List<ProcessingStep> steps = order.getProcessingSteps();
                            steps.add(newStep);
                            order.setProcessingSteps(steps);
                            order.saveInBackground(new SaveCallback() {
                                @Override
                                public void done(ParseException e) {
                                    if (e == null){
                                        Log.i("Info", "order.save callback OK");
                                    }else{
                                        Log.i("Info", "order.save callback FAIL");
                                    }
                                }});
                        } else {
                            Log.i("Info", "newStep.save callback FAIL");
                            e.printStackTrace();
                        }
                    }
                });
            } else {
                Log.i("Info", "frame.save callback FAIL");
                e.printStackTrace();
            }
        }
    });

在控制台日志中我只看到“frame.save回调OK”,“newStep.saveInBackground()”似乎也被执行(对象出现在后端)但是我从来没有在回调中获得日志消息。

如果我在同步之前保存所有对象而没有先引用彼此,然后在这里调用代码,它似乎工作(至少工作一次)但是花了很长时间(分钟)。来自后端的查询速度非常快,框架对象也几乎立即保存,但完成回调似乎很烦人。当它失败时,我没有得到任何异常,记录它似乎无声地失败的任何东西。

我正在寻找任何洞察力为什么Parse表现得像以及如何解决它。

编辑:问题似乎是双重关系(A到B和B到C)。如果我只尝试A到B或B到C,那就可以了。然而,对我来说仍然是神秘的是为什么用回调分割操作似乎不起作用。

android parsing callback
1个回答
0
投票

问题是启用了localdatastore。如果没有localdatastore,一切都可以正常工作。

© www.soinside.com 2019 - 2024. All rights reserved.