firebase选择计数1天

firebase选择计数1天,firebase,firebase-realtime-database,Firebase,Firebase Realtime Database,假设我有一天的一些数据和另一天的另一组数据。这些数据将存储在同一个表中。是否有一种方法可以让我为每天选择计数:比如说,第一天有20个计数,第二天有13个计数?最简单的方法是将另一个子对象添加到对象中。调用它date,并将日期另存为yyyyymmdd。这将为每个对象提供一个日期戳 然后您可以执行如下查询: firebase.database() .ref('/Button_Log') .orderByChild('date') .equalTo('20170818') .once

假设我有一天的一些数据和另一天的另一组数据。这些数据将存储在同一个表中。是否有一种方法可以让我为每天选择计数:比如说,第一天有20个计数,第二天有13个计数?

最简单的方法是将另一个子对象添加到对象中。调用它
date
,并将日期另存为
yyyyymmdd
。这将为每个对象提供一个日期戳

然后您可以执行如下查询:

firebase.database()
  .ref('/Button_Log')
  .orderByChild('date')
  .equalTo('20170818')
   .once('value')
   .then(snapshot => {
     console.log(snapshot.numChildren());   // Number of records
   });
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
  });
否则,如果你不想要一个新的孩子,你可以试试这样的东西

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
,这将保存时间戳

然后您可以执行如下查询:

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

将解决问题的“按时间查询”字段。如果使用unix时间戳作为int而不是日期字符串,则允许您在以后需要时也指定时间=>更大的可伸缩性。如果要跨范围查询,该怎么办。所以第一天有20个;第2天有8天;第3天有10天;第4天为0;第5天为0;第6天有1天;第7天有11天。所以,如果我有一个页面,当前显示1天,但用户每周点击,我需要显示7天的全部计数?