对于一个新项目,我正在进行一些测试。现在我有一个函数,我试图将一个对象保存到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,因为可能会丢失网络连接。有没有人知道可能是什么问题?
更新2:最后决定删除Parse数据浏览器的app和installationId。重新安装应用程序后,一切都开始像它应该的那样工作。我可能有一段糟糕的代码被我的安装ID卡住了。我希望有同样问题的其他人快速到达这篇文章,不要花几天时间寻找答案!
更新3:有一个功能试图根据指针查找用户,该指针包含应用用户的对象ID,导致应用程序崩溃一次而不是完全无法使用。我把第一个答案标记为正确的答案,因为它解决了我原来的问题,但只是fyi ..比起我预期的更多。
答案 0 :(得分:1)
试试这个:
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来设置当前用户。
编辑: 您也可以参考https://stackoverflow.com/a/28403968/2571060来设置指针
答案 1 :(得分:0)
我在iOS SDK上遇到了类似的问题。您使用的是“自动创建用户”吗?因此,在这种情况下,ParseUser.getCurrentUser()返回其objectId为null的User对象。根据文档,在用户或与其相关的任何对象被保存之前,它为空。但根据我的经验,事实并非如此,我必须首先保存用户,否则我会收到“用户只能在signUp期间创建”等错误。