2017-04-19 39 views
0

我的数据模型Xcode的火力地堡查询获取spacific数据

{ 

"channels":{ 
    "channel_key_0":{ 
     "creator":"pqr", 
     "name":"Channel-1", 
     "participant":{ 
      "id_1":"Jack", 
      "id_2":"Harry" 
     } 
    }, 
    "channel_key_1":{ 
     "creator":"xyz", 
     "name":"Channel-2", 
     "participant":{ 
      "id_3":"Jerry", 
      "id_2":"Harry" 
     } 
    } 
} 

}

从上述结构给出我想要获取的仅在参与者都有价值"id_1": "Jack"通道。

我是Firebase数据库的新手。需要帮助来编写这个查询。我尝试了几件事FIRDatabase.database().reference().child("channels").queryOrdered(byChild: "participant").queryEqual(toValue: "Jack", childKey: "id_1"),但给我空数据。

结构的改进也是受欢迎的。我的想法是通过应用这种结构来建立个人聊天。

回答

0

试试这种方式。

let ref = FIRDatabase.database().reference().child("channels") 
ref.queryOrdered(byChild: "participant/id_1").queryEqual(toValue: "Jack") 
    .observeSingleEvent(of: .value, with: { snapshot in 

    print(snapshot) 
}) 
+0

完美...感谢哥们。 –

+0

快速问题....你有任何想法如何使用正则表达式''参与者/ id_1'像'参与者/ any_thing'的地方? –

+0

@JayPandya我没有尝试过这样的事情。 :(如果我找到合适的例子,会在这里回应 –