如何在Firebase中检索特定的孩子?

时间:2016-06-09 21:07:28

标签: ios objective-c firebase

如果要在节点中保存多个相同类型的子节点,childByAutoId会很有用,这样每个子节点都有自己唯一的标识符。

pet:{
    KJHBJJHB:{
      name:fluffy,
      owner:John Smith,
    },
    KhBHJBJjJ:{
      name:fluffy,
      owner:Jane Foster,
    }
} 

因此,一旦我有了这个uID,我想使用他/她的uID检索特定用户。如何告诉Firebase我想要该特定用户?因为我创建它并将其存储在Firebase中,但随后要阅读它,我不需要知道uID的值吗?我从哪里得到它?

我使用什么功能来检索例如使用uID的第二个用户?

提前致谢..

1 个答案:

答案 0 :(得分:1)

标题中的

你问怎么摆脱所以::获取新的ref的关键属性来获得创建的援助

FIRDatabaseReference *ref = parent.childByAutoID
NSString *uid = ref.key

但那不是你想要的id,所以:

过滤掉你想要的所有者= XY的孩子:

FIRDatabaseReference *ref = your pets node 
FIRDatabaseQuery *allPets = [ref queryOrderedByChild:@"owner"];
FIRDatabaseQuery *specificPet = [allPets queryEqualToValue:@"XY"];

[specificPet observeEventType:FEventTypeChildAdded withBlock:^(FIRDataSnapshot *snapshot) {
  NSDictionary *dict = snapshot.value;
  NSString *key = snapshot.key;

  NSLog(@"key = %@ for child %@", key, dict);
}];

请参阅:Query users by name or email address using Firebase (Swift)