javascript - 按日期过滤 Firebase

标签 javascript firebase firebase-realtime-database

我的数据:

Data

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

  var rootRef1 = firebase.database().ref().child("Users").orderByChild('type')
  .startAt("2019-01-05").endat("2019-01-10");


    rootRef1.on("child_added",snap => {
     var name=snap.child("fullname").val();
    var email= snap.child("email").val();
     var address= snap.child("address").val();
     var contact= snap.child("contact").val();
     var status=snap.child("status").val();
     var type=snap.child("type").val();
     var date=snap.child("regdate").val();
     console.log(name);   
   }); 

这似乎行不通。有什么想法吗?

最佳答案

您正在尝试根据日期值进行过滤,但您是根据type 进行排序 这不是 Firebase 数据库查询的工作方式:您总是首先根据属性/值进行排序,然后再对其进行过滤相同的属性/值。

所以要在 regdate 上排序/过滤:

firebase.database().ref().child("Users").orderByChild('regdate')
  .startAt("2019-01-05").endAt("2019-01-10");

请注意,我还将 endat 更改为 endAt(使用大写的 A)。您的 endat 会给出语法错误。


您现在结束于 2019-01-10。由于您的实际值包含一个时间,因此它们都将紧随该值之后。如果您还想包括在 2019-01-10 本身注册的用户,请使用:

firebase.database().ref().child("Users").orderByChild('regdate')
  .startAt("2019-01-05").endAt("2019-01-10 23:59:59");

关于javascript - 按日期过滤 Firebase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54171488/

相关文章:

swift - Firebase swift - 如何根据特定唯一键列表打印出值(存储在数组中的唯一键)

ios - 变量作用域不是我想要的?

javascript - 在 Bootstrap 中使用词缀沿导航推送链接

javascript - 单击复选框的文本描述仅切换第一个复选框

javascript - 无法在 JavaScript 中更改图像的高度

java - 我无法按照 udacity 的教程生成 SHA1 key

iOS 日历 View - 来自 JSON 的提要,显示详细信息

firebase - 无法在 Firebase 应用中禁用 Crashlytics(不再)

javascript - 自动工具提示

swift - Firebase:如何将数据放入已使用 childbyAutoID 创建的子对象中