I'm integrating multi-room chat in my app and I'm stuck with getting a list of all chat room a specific user is member of.
The structure looks like this:
The rooms and members are created with childByAutoId like this:
FIRUser *user = [FIRAuth auth].currentUser;
mdata[@"uid"] = user.uid;
roomKey = [[_rootRef child:@"messages"] childByAutoId].key;
NSString *memberID = [[[_rootRef child:@"members"] child: roomKey ] child: user.uid ].key;
// set Meta data for member to be able to recognize later
[[[[_rootRef child:@"members"] child: roomKey ] child: memberID ] setValue:mdata];
Now I'm trying the get the list of rooms for a (hard coded) user like that:
-(void) getRoomKeys {
[[[[_rootRef child: @"members"] queryOrderedByChild:@"uid" ] queryEqualToValue:@"QLfRoGpoCjWpzira7fljBj8g3EJ3"]
observeEventType:FIRDataEventTypeValue withBlock:^(FIRDataSnapshot *snapshot) {
NSDictionary<NSString *, NSString *> *message = snapshot.value;
}];
}
This return 0 key/value pairs.
When I take out the query I get all room keys. When I change the structure to this

I will get all rooms for that user but with this structure I can't add other members to that room. So I need to dig one level deeper.
So how to set the query for nodes that have been created by childByAutoId?
Thanks for your help!
