This can be done - kinda.
Here's a sample set of data
definitions
-K2XaThTbq3iRnevjM4V
author: "joe"
votes: "5"
sort: "joe_005"
-K2XaThTbq3iRnevjM4W
author: "jay"
votes: "100"
sort: "jay_100"
-K2XaThTbq3iRnevjM4X
author: "joe"
votes: "22"
sort: "joe_022"
ObjC
Firebase *ref = [self.myRootRef childByAppendingPath:@"definitions"];
FQuery *q1 = [ref queryOrderedByChild:@"sort"];
FQuery *q2 = [q1 queryStartingAtValue:@"joe_"];
[q2 observeEventType:FEventTypeChildAdded withBlock:^(FDataSnapshot *snapshot) {
NSLog(@"%@", snapshot.value);
}];
This will return all the children with joe as the author, ordered by number of votes.
Keep in mind that the sorting is sorting a string value, so joe_5 would come after joe_22 (2 is less than 5). So to compensate, pad the votes with 0's so the numeric part of the string is the same length.
This fails if the are 1000 votes, so just pad it with enough 0's to compensate.