如何在Parse.com android上获取objectId

时间:2013-11-26 09:47:13

标签: android parse-platform

据说我们可以检索我们的数据,如果我们有特定行的objectId,但它是自动生成的,我们不能在设置数据时插入它,所以如果我没有对象id,如何获取数据,或者任何其他方法,以便我可以设置objectId。

代码在评论中如下:

ParseObject gameScore = new ParseObject("My Parse File"); 
String objectId = gameScore.getObjectId(); 

6 个答案:

答案 0 :(得分:7)

在完成保存操作之前,ObjectId不存在。

ParseObject gameScore = new ParseObject("My Parse File"); 

要检索对象ID,您需要保存对象并注册保存回调。

gameScore.saveInBackground(new SaveCallback <ParseObject>() {
  public void done(ParseException e) {
    if (e == null) {
      // Success!
       String objectId = gameScore.getObjectId();

    } else {
      // Failure!
    }
  }
});

一旦完成保存回调,就可以从原始ParseObject(gameScore)中检索ObjectId。

答案 1 :(得分:2)

您可以使用它来获取当前用户对象ID

ParseUser pUser= ParseUser.getCurrentUser();
String objId= pUser.getObjectId();

答案 2 :(得分:1)

不确定这是否适用于android,但我试图检索对象ID,但是对于已经创建的条目。我做了类似的事情并且有效。

ParseObject gameScore = new ParseObject("My Parse File");
var obId = gameScore.id;

Got it from the Javascript docs on Parse.com

The three special values are provided as properties:

var objectId = gameScore.id;

var updatedAt = gameScore.updatedAt;

var createdAt = gameScore.createdAt;

答案 3 :(得分:1)

在对象被保存之前,您无法使用ObjectId。我现在遇到同样的问题。我能想到的唯一解决方案,并发布了一个与之相关的类似问题here

我的解决方案是在对象上创建tempId并在本地引用它,直到它具有实际的ObjectId,可能使用saveInBackgroundsaveEventually()回调来设置其他对象相关对它来说,新创建的ObjectId而不是它的旧临时工具......当它可用时

答案 4 :(得分:0)

如果您自己处理线程:

首先保存:

gameScore.save();

然后您就可以访问ID:

String parseId = gameScore.getObjectId();

答案 5 :(得分:0)

您的值需要多长时间才能存储在表中。使用它来获取ObjectId

gameScore.saveInBackground(new SaveCallback() {
    public void done(ParseException e) {
        if (e == null) {
            // Saved successfully.
            Log.d("main", "User update saved!");
            Log.d("main", "ObjectId "+gameScore.getObjectId());

        } else {
            // The save failed.
            Log.d("main", "User update error: " + e);
        }
    }
});