【发布时间】:2018-06-09 02:03:06
【问题描述】:
我正在尝试根据 pushID 对 iOS 客户端上的“交易”数据进行排序,因为它是根据时间戳创建的:
"Transaction" : {
"-LENv2bwDAwH43w9XgCx":{
"amount": 1000,
timeStamp: 1526699894096 // generated by admin.database.ServerValue.TIMESTAMP
},
"-LENxaYGyAqfbUg7enN7":{
"amount": 1500,
timeStamp: 7528362568524
},
"-LEOVVgvJaiWkMDb__eF":{
"amount": 2000,
timeStamp: 8528353417439
},
}
我尝试创建2个数组,一个用来存储交易id,一个用来存储对应的交易数据字典:
[[[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
NSDictionary* responseDict = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&errorJson];
NSArray *sortedKeys = [[responseDict allKeys] sortedArrayUsingSelector: @selector(compare:)];
_transactionKeyArray = [sortedKeys mutableCopy];
_transactionArray = [NSMutableArray array];
for (NSString *key in _transactionKeyArray){
[_transactionArray addObject: [responseDict objectForKey: key]];
};
但是,我发现在根据 pushID(例如 -LENv2bwDAwH43w9XgCx)对其进行排序后,顺序不正确。
根据这篇博文,我们似乎需要根据 firebase 时间戳 (https://firebase.googleblog.com/2015/02/the-2120-ways-to-ensure-unique_68.html) 对其进行排序
我们应该如何根据时间戳对其进行排序?我还需要对交易 ID 进行排序。
【问题讨论】:
标签: objective-c json firebase firebase-realtime-database