0
火力地堡數據:火力地堡計數兒童
{
"data": {
"entry-1": {
"created": 1484634400,
"status": 1
},
"entry-2": {
"created": 1482612312,
"status": 0
},
"entry-3": {
"created": 1481623400,
"status": 1
},
"entry-4": {
"created": 1485613233,
"status": 1
},
"entry-5": {
"created": 1489513532,
"status": 0
},
"entry-6": {
"created": 1483123532,
"status": 1
},
"entry-7": {
"created": 1481282376,
"status": 1
},
"entry-8": {
"created": 1432321336,
"status": 1
},
"entry-9": {
"created": 1464282376,
"status": 0
}
}
}
我想看看有多少活躍條目(status
= 1)entry-4
之前創建的,並保持實時更新計數。
今天我聆聽數據庫中的每一個變化,但它消耗了大量不必要的數據。有一個更好的方法嗎?
代碼:
FIRDatabaseQuery *query = [self.firebase child:@"data"];
[query observeEventType:FIRDataEventTypeValue withBlock:^(FIRDataSnapshot * _Nonnull snapshot) {
int count = 0;
for (FIRDataSnapshot *child in snapshot.children) {
if (child.value[@"status"] == 1 && child.value[@"created"] < 1485613233) {
count++;
}
}
}];
Firebase數據庫中沒有計數運算符。爲了防止必須下載所有項目以獲得計數,您可以保留一個單獨的'count'節點 - 然後您可以更新事務。請參閱http://stackoverflow.com/questions/15148803/in-firebase-is-there-a-way-to-get-the-number-of-children-of-a-node-without-load/15149311#15149311 –
Firebase最近發佈了雲端功能。看看這個[回答](http://stackoverflow.com/a/42713792/5861618)瞭解更多詳情 –