我是firebase的新手,因为parse正在关闭,我花了几天时间试图弄清楚如何找到我想要查询的孩子的父级。例如,假设我的父母是电子邮件而我的孩子是person1。现在在我的字典中,person1与人1配对(有一个复杂的原因,我这样做但不是问题)
所以我的代码看起来像这样。
Firebase *fb=[[Firebase alloc]initWithUrl:@"https:firebaseURL"];
[[[fb queryOrderedByChild:@"person1 string"] queryEqualToValue:@"person1 string"]
observeEventType:FEventTypeChildAdded withBlock:^(FDataSnapshot *snapshot) {
NSLog(@"888888%@", snapshot.key);
}];
没什么表现
我真的很感激帮助。所以基本上我需要知道如何根据子值查询并找到该子项的父项。感谢大家。
答案 0 :(得分:1)
有几件事情;
您的查询格式错误。通过定义要搜索的“字段”或节点名称进行排序..它是KEY:VALUE对的KEY部分。
[fb queryOrderedByChild:@“person1 string”]应为
[fb queryOrderedByChild:@“要搜索的节点名称”]
让我分解
鉴于
users
uid_0
name: "Jay"
state: "Florida"
uid_1
name: "Leroy"
state: "Colorado"
和代码
// a reference to the parent node we want to query
Firebase *usersRef = [self.myRootRef childByAppendingPath:@"users"];
//define which child node name we want to search
FQuery *statesRef = [usersRef queryOrderedByChild:@"state"];
//define the value we want to search for
FQuery *specificStateRef = [statesRef queryEqualToValue:@"Florida"];
[specificStateRef observeEventType:FEventTypeChildAdded withBlock:^(FDataSnapshot *snapshot) {
NSLog(@"snapshot: %@", snapshot);
}];
快照将包含
uid_0
name: "Jay"
state: "Florida"
父节点名称为uid_0,可以使用
进行检索NSLog(@" key: %@", snapshot.key);
,名称和状态是存储在值
中的键值对NSLog(@" value: %@", snapshot.value);