我试图根据孩子获取节点的密钥。这是我的结构
代码:
RESTAURANTS
KTNfWKLD0isCsrpys
name: “McDonalds”
loc: “LA”
KTNfWILD0iIkLLekc
name: “KFC”
loc: “LV”
代码:
FIRDatabase.database().reference().child("RESTAURANTS").queryOrderedByChild("name").queryEqualToValue("McDonalds").observeEventType(.Value, withBlock: { (snapshot) in
print(snapshot.key)
}, withCancelBlock: nil)
我怎样才能获得麦当劳"麦当劳的关键词。在查询?
答案 0 :(得分:3)
您必须使用allKeys从快照中获取密钥,然后将其循环以逐个获取密钥。试试这段代码
FIRDatabase.database().reference().child("RESTAURANTS").queryOrderedByChild("name").queryEqualToValue("McDonalds").observeEventType(.Value, withBlock: { (snapshot) in
if snapshot.exists() {
for key in (snapshot.value?.allKeys)!{
print(key)
}
}
}
正如@Frank van Puffelen所说,这种迭代方式失去了子节点的排序。如果您想获得有序列表而不是先使用
snapshot.children