2017-08-18 74 views
0

因此,假設我有一天的數據和另一天的數據。這些數據將存儲在同一個表中。有沒有辦法讓我每天選擇計數:比如說,第1天有20個計數,第2天有13個計數? enter image description herefirebase select count for 1 day

+0

查詢的時間字段,將解決這個問題 –

回答

1

最簡單的方法是將另一個孩子添加到對象中。將其稱爲date並將日期保存爲YYYYMMDD。這給每個對象一個日期戳。

然後,你可以做一個查詢,如;

firebase.database() 
    .ref('/Button_Log') 
    .orderByChild('date') 
    .equalTo('20170818') 
    .once('value') 
    .then(snapshot => { 
    console.log(snapshot.numChildren()); // Number of records 
    }); 

否則,如果你不想要一個新的孩子,你可以嘗試類似的;

firebase.database() 
    .ref('/Button_Log') 
    .orderByChild('time') 
    .startAt('2017-08-10') 
    .endAt('2017-08-10 23:59:59') 
    .once('value') 
    .then(snapshot => { 
    console.log(snapshot.numChildren()); // Number of records 
    }); 

編輯

托馬斯建議您使用UNIX時間戳,因爲它是更加靈活。

當節省數據時將創建的時間戳設置爲firebase.database.ServerValue.TIMESTAMP這將節省時間戳。

然後,你可以做一個查詢,如;

var startOfDay = new Date(); 
startOfDay.setHours(0,0,0,0); 

var endOfDay = new Date(); 
endOfDay.setHours(23,59,59,999); 

firebase.database() 
    .ref('/Button_Log') 
    .orderByChild('timestamp') 
    .startAt(startOfDay) 
    .endAt(endOfDay) 
    .once('value') 
    .then(snapshot => { 
    console.log(snapshot.numChildren()); // Number of records 
    }); 
+0

它會使用Unix時間戳爲INT代替日期字符串,它允許將來有需要=>更多的可擴展性,以太指定的時間。 – Thomas