我正在尝试获取已加入群组的用户的ParseRelation。在我添加登录Facebook之前,我没有问题。现在,我尝试将用户添加到关系然后保存ParseObject时出现“无法保存未经过身份验证的ParseUser”错误。我可以加入由没有使用Facebook登录的人创建的群组,我可以加入我创建的群组(我已经使用FB登录),但是使用登录Facebook的其他用户创建了群组错误。
mJoinButton.setOnClickListener(new View.OnClickListener() {@
Override
public void onClick(View v) {
ParseObject group = mGroups.get(getAdapterPosition());
mJoinedRelation = group.getRelation(ParseConstants.KEY_JOINED_RELATION);
mJoinedRelation.add(mCurrentUser);
group.saveInBackground(new SaveCallback() {
@
Override
public void done(ParseException e) {
if (e == null) {
Toast.makeText(mContext, "You have joined the group!", Toast.LENGTH_LONG).show();
} else {
AlertDialog.Builder builder = new AlertDialog.Builder(mContext)
.setMessage(e.getMessage())
.setTitle(R.string.login_error_title)
.setPositiveButton(android.R.string.ok, null);
AlertDialog dialog = builder.create();
dialog.show();
}
}
});
}
});
答案 0 :(得分:3)
如果您在parse.com上检查User类上的ACL列,您将看到它具有公共读取功能,但它没有公共写入功能,因此如果您未登录,则无法更新行信息作为那个用户。我相信如果你希望能够更新而不记录id,你必须将Public Write添加到该用户的ACL中,尽管我不推荐它。另一个解决方案是创建一个ParseObject来存储非登录信息,这样你就可以从任何地方更新它,因为默认情况下ACL将被设置为Public Write。