You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Back4App如何正确更新关系数据数组?关联未保存ParseObject报错怎么解决

错误原因
  • 你调用的temp.saveInBackground()是异步执行方法,代码不会等待Review对象保存完成再往下执行。在Review还未完成服务端持久化、没有生成唯一objectId时,就将它添加到Post的关系字段并触发Post保存,就会抛出该异常。
  • 额外代码问题:你使用ratingBar.getNumStars()获取的是评分条的总星数配置,不是用户实际选择的评分值,需要替换为ratingBar.getRating()。
正确实现代码

只需要修改submit点击事件中的else分支逻辑,将关联Post、保存Post、页面跳转的逻辑全部放到Review保存成功的回调中即可:

// 原有判断逻辑不变
}else{
    ParseObject temp = ParseObject.create("Reviews");
    temp.put("Description",description.getText().toString());
    temp.put("author", ParseUser.getCurrentUser());
    temp.put("likesCount",0);
    temp.put("dislikesCount",0);
    // 修复:获取用户实际选择的评分
    temp.put("rating", ratingBar.getRating());

    ParseRelation<ParseObject> relation = loadpost.getRelation("Reviews");

    temp.saveInBackground(new SaveCallback() {
        @Override
        public void done(ParseException e) {
            // 先判断Review保存是否成功
            if(e != null){
                Log.e("ReviewFragment","保存Review失败", e);
                Toast.makeText(getContext(), "评论保存失败,请重试", Toast.LENGTH_SHORT).show();
                return;
            }
            // Review保存成功后,再添加到Post的关系中
            relation.add(temp);
            // 保存Post
            loadpost.saveInBackground(new SaveCallback() {
                @Override
                public void done(ParseException e) {
                    if(e!=null){
                        Log.e("ReviewFragment","更新Post关系失败", e);
                        Toast.makeText(getContext(), "保存失败,请重试", Toast.LENGTH_SHORT).show();
                        return;
                    }
                    // Post保存成功后再跳转页面
                    Homefragment nextFrag= new Homefragment();
                    getActivity().getSupportFragmentManager().beginTransaction()
                            .replace(R.id.flContainer, nextFrag)
                            .addToBackStack(null)
                            .commit();
                }
            });
        }
    });
}

内容的提问来源于stack exchange,提问作者Qizong Liang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.19 11:45:05