2017-08-13 117 views
0

取快照我有一个火力地堡数据集:火力地堡,斯威夫特:基于特定值

  • 用户
    • QZqFzWxpdMfc0xmyIq5IDAr1bzr2
      • 凭据
        • 电子邮件:“myemail @ gmail的。 com“
        • 用户名:”MyUserna我”
    • RJasdfasfasdad3dadaewdsdkdq3dk

和快照查询:

FIRDatabase.database().reference().child("users").observe(.childAdded, with: { (snapshot) in 

我怎样才能做一个查询,以便只返回与用户名“MyUserName输入”用户ID?

E.g.我可以这样做:

let query = "/*/credentials/[username=MyUsername]" 
FIRDatabase.database().reference().child("users").child(query) 
+0

什么是'RJasdfasfasdad3dadaewdsdkdq3dk',userId? – Dravidian

+0

这是一个数组,只是循环,并获得所有用户名 –

+0

@ĐinhQuangHiếu这对于超过500万用户 –

回答

1

要获得匹配特定的用户名只有用户节点(S),你需要一个查询:

FIRDatabase 
    .database().reference() 
    .child("users") 
    .queryOrdered(byChild: "credentials/username") 
    .queryEqual(toValue: "MyUsername") 
    .observe(.childAdded, with: { (snapshot) in 

另见Firebase documentation on ordering and filtering data