2

我最近开始为 Android 应用程序使用 Parse 库。我想使用 saveEventually 存储用户联系人,然后使用 ParseRelation 将其与用户相关联。由于有多个联系人映射到用户,我使用下面的代码来处理我的保存功能。

ParseRelation relation = ParseUser.getCurrentUser().getRelation(relationshipName);

for(int entityIndex = 0; entityIndex < entities.length;entityIndex++) { 
... 
  entity[entityIndex].saveEventually(); relation.add(entity[entityIndex]); 
...    
}

ParseUser.getCurrentUser().saveEventually();

在这里,我对每个有效实体(ParseObject)使用 saveEventually(),然后将其添加到关系中。稍后,一旦将所有对象添加到 ParseRelation,最后我会为 ParseUser 调用 saveEventually() 来存储与 Parse 的所有关系。

这种方法对吗?我在 relationship.add(entity[entityIndex]);

关系中的所有对象都必须具有对象 ID。

这似乎表明存在一些网络连接问题,并且 ParseRelation 没有为每个 ParseObject 获取唯一的 objectId,但我假设这个 saveEventuall() 将使用 ParseRelation 很好地处理这种情况

请建议。我正在使用 Parse 库版本 1.1.11

谢谢。

4

1 回答 1

4

必须首先保存添加到 ParseRelation 的任何对象。saveEventually 调用是非阻塞的,因此当对象被添加到 ParseRelation 时,当执行到达下一行时,该对象不太可能已经保存。

由于您需要确保首先保存对象,因此您应该使用 saveInBackground 而不是 saveEventually。然后确保从 saveInBackground 的 SaveCallback 中将保存的对象添加到关系中。这将确保对象在添加到关系之前已保存。

于 2013-03-11T01:04:12.237 回答