我在Firebase中有以下数据:
- Info/
-2018-09-23-13-38-00-WhyNewYo
-2018-09-23-14-04-57-PompeoWe
-2018-09-23-14-10-32-FocusonE
-2018-09-23-14-39-00-SenPatty
-2018-09-23-14-40-30-Rebelatt
-2018-09-23-14-57-33-Piratesa
每个条目都是在不同的时间创建的,但是我是根据特定标题命名的,因此我知道哪个是最新的,当我在Firebase控制台中自动查看它们时,它将按字母顺序排列。
当我想查询最新的2个数据时(根据上面显示的顺序查询最后2个数据),但是Firebase似乎返回了不正确的数据,我正在使用以下代码:
FIRDatabaseReference *dataRef = [[FIRDatabase database] reference];
dataRef = [dataRef child:[NSString stringWithFormat:@"/info"]];
[[[dataRef queryOrderedByValue] queryLimitedToLast:2] observeSingleEventOfType:FIRDataEventTypeValue withBlock:^(FIRDataSnapshot * _Nonnull snapshot) {
NSDictionary *infoFromFirebase= snapshot.value;
答案 0 :(得分:0)
查询并观察FIRDataEventTypeValue
时,会在单个快照中获得所有匹配的节点。如果调用snapshot.value
,则数据将转换为字典,并且匹配节点顺序的信息也会丢失。
要维持节点的顺序,请确保使用snapshot
遍历for (FIRDataSnapshot* child in snapshot.children) { … }
的子代。