firebase选择计数为1天

时间:2017-08-18 06:58:03

标签: firebase firebase-realtime-database

所以让我们说我有一天的数据和另一天的另一组数据。这些数据将存储在同一个表中。我有没有办法为每一天选择计数:比如让我们说第1天有20个计数而第2天有13个计数?enter image description here

1 个答案:

答案 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
  });

修改

Thomas建议您使用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
  });