【问题标题】:Firebase query by date range按日期范围查询 Firebase
【发布时间】:2015-01-12 18:20:44
【问题描述】:

我的 firebase 数据如下所示:

{
  "lambeosaurus": {
    "date" : 1420753443,
    "length" : 12.5,
    "weight": 5000
  },
  "stegosaurus": {
    "date" : 1429053443,
    "length" : 9,
    "weight" : 2500
  }
}

我正在寻找一种使用自定义日期范围过滤日期的方法。 我在网上看到了一些他们查询日期的示例,但时间戳一直是关键,在我的情况下这是不可能的。

相关部分是可以在此处找到的文档: https://www.firebase.com/docs/web/guide/retrieving-data.html#section-queries

重要的是仍然支持实时更新。我也只想确定符合标准的所有项目的数量。我对每个节点的数据点不感兴趣。

【问题讨论】:

    标签: javascript firebase


    【解决方案1】:

    看起来您可以使用orderBychild() 方法按子键或属性(即weightlengthdate)进行排序。如果您使用 startAt()endAt() 将其链接起来,我们可以构建您正在寻找的查询:

    var startDate = 14200000000;
    var endDate = 14300000000;
    
    ref.orderByChild("date").startAt(startDate).endAt(endDate)
      .on("child_added", function(snapshot){
        console.log("got the data!", snapshot);
      });
    

    【讨论】:

    • 有没有办法确定匹配“startAt”和“endAt”标准的次数,但不必加载每个项目。通过将 .on('child_added') 更改为 .on('value') 可以实现,但不再实时同步。
    • 这可以扩展到 GPS 坐标吗? IE。经纬度有startAt()endAt 吗?
    猜你喜欢
    • 1970-01-01
    • 2018-04-10
    • 2017-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多