Firebase查询出现问题

时间:2016-03-18 12:34:48

标签: ios objective-c firebase

我是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);
 }];

没什么表现

我真的很感激帮助。所以基本上我需要知道如何根据子值查询并找到该子项的父项。感谢大家。

1 个答案:

答案 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);