2016-02-22 100 views
0

我正在使用Parse作为我的后端,并且试图“喜欢”另一位用户在该应用上发布的帖子。我正在查询以获取帖子,然后将喜欢的数量递增1,然后将当前用户的对象ID添加到数组中,该数组保存喜欢该帖子的所有用户ID。“无法保存未经过身份验证的ParseUser”与已通过身份验证的用户

carLikeQuery.getInBackground(carItem.getObjectId(), new GetCallback<ParseObject>() { 
            @Override 
            public void done(ParseObject object, ParseException e) { 
             object.increment("likes"); 
             object.addUnique("usersWhoLike", ParseUser.getCurrentUser().getObjectId()); 
             object.saveInBackground(new SaveCallback() { 
              @Override 
              public void done(ParseException e) { 
               if(e==null) { 
                Log.d("SAVE", "Like saved :)"); 
               } else { 
                Log.e("SAVE", "Not saved :(:" + e.getLocalizedMessage()); 
               } 
              } 
             }); 
            } 
           }); 

我得到的错误:

E/SAVE: Not saved :(:java.lang.IllegalArgumentException: Cannot save a ParseUser that is not authenticated. 

我看到某处的ParseUser的源代码:

void validateSave() { 
     if (getObjectId() == null) { 
      throw new IllegalArgumentException("Cannot save a ParseUser until it has been signed up. Call signUp first."); 
     } 

     if (!isAuthenticated() && isDirty()) { 
      throw new IllegalArgumentException("Cannot save a ParseUser that is not authenticated."); 
     } 
    } 

做同一种检查在我的代码显示,当前用户是AUTHENTICATED而不是DIRTY。

问题是什么?说实话,我想说的是,今天之前它运行得很好,但显然我正在改变一些事情,并且犯了一个错误,我找不到它!任何帮助将不胜感激。

+0

听起来像一个ACL问题。这些帖子是否设置为公开写入? – Manu

+0

@Manu是的。我通过创建具有相同数据结构/布局的全新Parse应用程序来解决该问题。 – jaytj95

回答

相关问题