Android 解析,添加关系。无法编码与未保存的ParseObject的关联

Android 解析,添加关系。无法编码与未保存的ParseObject的关联,android,parse-platform,Android,Parse Platform,我试图在表用户上添加一个与表栏上的栏的关系。这些条在我的数据库中已经存在,但我总是收到错误“无法编码与未保存的ParseObject的关联” ParseUser user=ParseUser.getCurrentUser(); ParseObject barParseObject=ParseObject.createWithoutData(TABLE_BAR,BAR.getBarId()); ParseRelation=user.getRelation(ApiUserMapper.FIELD);

我试图在表用户上添加一个与表栏上的栏的关系。这些条在我的数据库中已经存在,但我总是收到错误“无法编码与未保存的ParseObject的关联”

ParseUser user=ParseUser.getCurrentUser();
ParseObject barParseObject=ParseObject.createWithoutData(TABLE_BAR,BAR.getBarId());
ParseRelation=user.getRelation(ApiUserMapper.FIELD);
if(bar.isFavorite()){
添加(barParseObject);
}否则{
删除(barParseObject);
}
user.saveInBackground(新的SaveCallback(){
@凌驾
公共作废完成(Parsee异常){
如果(e==null){
resultCallback.processResults(条形图);
}否则{
if(BuildConfig.DEBUG){
Log.e(标记“Error:updateav”+e.getMessage());
} 
resultCallback.processError(e);
}
}
});
getBarId()包含一个已存储在数据库中的有效ObjectId,但我以前也尝试过查询该条,结果相同

ParseQuery<ParseObject> query = ParseQuery.getQuery(TABLE_BAR);
query.getInBackground(bar.getBarId(), new GetCallback<ParseObject>() {
    public void done(ParseObject object, ParseException e) {
        if (e == null) {
            ParseRelation<ParseObject> relation = user.getRelation(ApiUserMapper.FIELD_LIKES);

            if (bar.isFavourite()) {
                relation.add(object);
            } else {
                relation.remove(object);
            }
            user.saveInBackground(new SaveCallback() {
                @Override
                public void done(ParseException e) {
                    if (e == null) {
                        resultCallback.processResults(bar);
                    } else {
                        if (BuildConfig.DEBUG) {
                            Log.e(TAG, "Error: updateFav " + e.getMessage());
                        }
                        resultCallback.processError(e);
                    }
                }
            });
        }
    }
});
ParseQuery query=ParseQuery.getQuery(TABLE\u BAR);
query.getInBackground(bar.getBarId(),new GetCallback()){
公共无效完成(ParseObject对象,parsee异常){
如果(e==null){
ParseRelation=user.getRelation(ApiUserMapper.FIELD);
if(bar.isFavorite()){
关系。添加(对象);
}否则{
关系。移除(对象);
}
user.saveInBackground(新的SaveCallback(){
@凌驾
公共作废完成(Parsee异常){
如果(e==null){
resultCallback.processResults(条形图);
}否则{
if(BuildConfig.DEBUG){
Log.e(标记“Error:updateav”+e.getMessage());
}
resultCallback.processError(e);
}
}
});
}
}
});
如果我尝试以相反的方式添加关系,则效果很好。但是我希望将关系添加到表User上

ParseObject barParseObject = ParseObject.createWithoutData(TABLE_BAR, bar.getBarId());
        ParseRelation<ParseObject> relation = barParseObject.getRelation(ApiUserMapper.FIELD_LIKES);
        relation.add(user);
        barParseObject.saveInBackground(new SaveCallback() {
            @Override
            public void done(ParseException e) {
                if (e == null) {
                    resultCallback.processResults(bar);
                } else {
                    if (BuildConfig.DEBUG) {
                        Log.e(TAG, "Error: updateFav " + e.getMessage());
                    } else {
                        Crashlytics.log(LOG_PRIORITY, TAG, "Error: updateFav " + e.getMessage());
                    }
                    resultCallback.processError(e);
                }
            }
        });
ParseObject barParseObject=ParseObject.createwithout数据(TABLE_BAR,BAR.getBarId());
ParseRelation=barParseObject.getRelation(ApiUserMapper.FIELD);
添加关系(用户);
barParseObject.saveInBackground(新的SaveCallback(){
@凌驾
公共作废完成(Parsee异常){
如果(e==null){
resultCallback.processResults(条形图);
}否则{
if(BuildConfig.DEBUG){
Log.e(标记“Error:updateav”+e.getMessage());
}否则{
log(log_优先级,标记“Error:updateFav”+e.getMessage());
}
resultCallback.processError(e);
}
}
});
有什么提示吗?与权限相关的东西?我假设当前用户能够编写自己的数据,但我的代码中没有任何特定的设置


谢谢

您确定用户已登录吗?看起来
user.getCurrentUser()
可能返回null,这可以解释粘性错误。

我不知道发生了什么,但我在解析控制台上删除了我的用户。我创建了一个新的,现在一切都很好

我还不能评论或更新投票,但我想让大家知道,删除和读取用户也解决了我的问题,以防其他人也有同样的问题。

用户很好。事实上,如果我尝试以另一种方式添加关系(将关系添加到栏而不是用户),效果很好。ParseObject barParseObject=ParseObject.createWithoutData(TABLE_BAR,BAR.getBarId());ParseRelation=barParseObject.getRelation(ApiUserMapper.FIELD);添加关系(用户);barParseObject.saveInBackground();
ParseObject barParseObject = ParseObject.createWithoutData(TABLE_BAR, bar.getBarId());
        ParseRelation<ParseObject> relation = barParseObject.getRelation(ApiUserMapper.FIELD_LIKES);
        relation.add(user);
        barParseObject.saveInBackground(new SaveCallback() {
            @Override
            public void done(ParseException e) {
                if (e == null) {
                    resultCallback.processResults(bar);
                } else {
                    if (BuildConfig.DEBUG) {
                        Log.e(TAG, "Error: updateFav " + e.getMessage());
                    } else {
                        Crashlytics.log(LOG_PRIORITY, TAG, "Error: updateFav " + e.getMessage());
                    }
                    resultCallback.processError(e);
                }
            }
        });