使用方法
observeEventType代替
observeSingleEventOfType。另外,将FIRDataEventType设置为
ChildAdded。
最后,如果要使用前20个项目,请使用
queryLimitedToFirst代替
queryLimitedToLast。
{ "users" : { "alovelace" : { "name" : "Ada Lovelace", "score" : 4 }, "eclarke" : { "name" : "Emily Clarke", "score" : 5 }, "ghopper" : { "name" : "Grace Hopper", "score" : 2 } }}对于上面的数据集
let queryRef = FIRDatabase.database().reference().child("users").queryOrderedByChild("score").queryLimitedToFirst(20)queryRef.observeEventType(.ChildAdded, withBlock: { (snapshot) in print("key: (snapshot.key), value: (snapshot.value)")})键:引子,值:可选({name = Grace Hopper; score = 2;})
键:alovelace,值:可选({name = Ada Lovelace; score = 4;})
键:eclarke,值:可选({name = Emily Clarke; score = 5;})
快照将以本机类型返回内容。返回的数据类型:
- NSDictionary
- NSArray
- NSNumber(还包括布尔值)
- NSString
因此,您可以通过这种方式获得分数。
let queryRef = FIRDatabase.database().reference().child("users").queryOrderedByChild("score").queryLimitedToFirst(20)queryRef.observeEventType(.ChildAdded, withBlock: { (snapshot) in if let scores = snapshot.value as? NSDictionary { print(scores["score"]) }})可选的(2)
可选的(4)
可选的(5)
此外,实时数据库的默认值以 升序 返回所有内容。
如果要 降序排列 ,可以在数据库中进行一些
技巧 (4:40)。



