android - 无法保存未经身份验证的 ParseUser

标签 android facebook parse-platform

我正在尝试获取已加入群组的用户的 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();
        }
      }
    });
  }
});

最佳答案

如果您在 parse.com 上检查您的用户类的 ACL 列,您会看到它具有公共(public)读取但它没有公共(public)写入,因此如果您没有登录,则无法更新行信息用户。我相信如果您希望能够在未记录 ID 的情况下进行更新,则必须将 Public Write 添加到该用户的 ACL,尽管我不推荐这样做。另一种解决方案是创建一个 ParseObject 来存储非登录信息,这样您就可以从任何地方更新它,因为默认情况下 ACL 将设置为公共(public)写入。

关于android - 无法保存未经身份验证的 ParseUser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29424750/

相关文章:

android - 如何获取数组的名称

Android:onDraw 太慢

javascript - 使用 PHP 通过 Facebook 登录我的系统

php - 如何使用 Facebook Graph API 在照片中标记用户?

ios - Parse.com NSURLErrorDomain Code=-1003 在手机中而不是在 wifi 中

java - GridView中图片无法显示?

android - 使用 gdb 附加到 android native 应用程序关闭设备上的应用程序

facebook - 如何使用 Facebook C# SDK 在 Facebook 页面上发帖

database - 解析 orQuery 的限制

swift - 将 Facebook 登录与 Parse Swift 3 集成