据说我们可以检索我们的数据,如果我们有特定行的objectId,但它是自动生成的,我们不能在设置数据时插入它,所以如果我没有对象id,如何获取数据,或者任何其他方法,以便我可以设置objectId。
代码在评论中如下:
ParseObject gameScore = new ParseObject("My Parse File");
String objectId = gameScore.getObjectId();
答案 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,可能使用saveInBackground
或saveEventually()
回调来设置其他对象相关对它来说,新创建的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);
}
}
});