Search code examples
iosparse-platformpfrelation

Why PFRelation does not support fromLocalDataStore queries?


I have a PFUser object with several PFRelation pointing to other objects. When I run the following code:

PFRelation *relation = [[PFUser currentUser] relationForKey:@"Relation"];
PFQuery *query = [relation query];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error){
    NSLog(@"%@", objects);
}];

it works fine. However, when I want to do the same from the local data store:

PFRelation *relation = [[PFUser currentUser] relationForKey:@"Relation"];
PFQuery *query = [[relation query] fromLocalDataStore]; // !!!
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error){
    NSLog(@"%@", objects);
}];

it returns nothing, despite the fact I've pinned both my user and related objects with [myObject pinInBackground].

Why PFRelation queries does not support fromLocalDataStore? What I'm doing wrong?


Solution

  • I've created a bug report for this issue which is

    escalated to the engineering team to investigate further

    So it looks like it's a bug

    In the meanwhile, I've converted all my PFRelations to arrays of pointers to related PFObjects. Not as fancy as PFRelation, but works fine with local data storage.

    Update: parse solved the issue in Parse SDK v.1.7.3