无法设置用户 objectId 来解析指针字段

Can't set user objectId to parse pointer field

对于一个新项目,我 运行 进行了一些测试。现在我有一个函数,我试图在其中将一个对象保存到 parse.com 框架并且一切顺利,直到我添加了一个用户指针对象。当我使用当前用户的 objectId 作为它的值时,指针线似乎阻止了我的代码。然而,使用用户电子邮件地址的随机词确实有效。我在下面添加了我的代码。

   // Create a data object and store it online.
   public void createDataObject(){
        ParseObject object = new ParseObject("TestData");
        object.put("action", "trial");
        object.put("value", "succes?");
        object.put("name", ParseUser.getCurrentUser().getUsername());
        String pointer = ParseUser.getCurrentUser().getObjectId();
        Log.i(TAG, pointer);
        object.put("pointer", ParseObject.createWithoutData("_User", pointer));
        object.saveEventually();
    }

希望有人能帮我解决,不胜感激!

更新:问题不是我的指针命令,而是我使用 saveEventually() 的事实;如果我使用 saveInBackground 它就可以工作,但我想使用 saveEventually 因为可能会丢失网络连接。有谁知道可能是什么问题?

更新二:最后决定删除app和Parse数据浏览器的installationId。重新安装应用程序后,一切都开始正常工作。我可能有一段错误的代码卡在了我的安装 ID 上。我希望遇到同样问题的其他人能尽快找到这个 post,不要花几天时间寻找答案!

更新 3:有一个特定的函数试图根据带有应用程序用户对象 ID 的指针来查找用户,这导致应用程序崩溃一次,然后完全无法使用。我将第一个答案标记为正确答案,因为它解决了我最初的问题,但仅供参考。发生的事情比我最初预期的要多。

试试这个:

public void createDataObject(){
        ParseObject object = new ParseObject("TestData");
        object.put("action", "trial");
        object.put("value", "succes?");
        object.put("name", ParseUser.getCurrentUser().getUsername());
        object.put("pointer", ParseUser.getCurrentUser());
        object.saveEventually();
    }

无需获取对象 ID 即可设置当前用户。

编辑: 也可以参考设置指针

我在 iOS SDK 中遇到了类似的问题。你在使用 'automatic user creation' 吗?因为在那种情况下,ParseUser.getCurrentUser() returns 一个 objectId 为 null 的 User 对象。根据文档,在保存用户或与其相关的任何对象之前,它为空。但根据我的经验,情况并非如此,我必须先保存用户,否则我会收到 'User can only be created during signUp' 之类的错误。