【问题标题】:Firebase Filter by DateFirebase 按日期过滤
【发布时间】:2019-01-14 01:59:54
【问题描述】:

我的数据:

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

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

这似乎不起作用。有什么想法吗?

【问题讨论】:

    标签: javascript firebase firebase-realtime-database


    【解决方案1】:

    您正在尝试过滤日期值,但您在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");
    

    【讨论】:

      猜你喜欢
      • 2017-10-05
      • 2020-05-12
      • 1970-01-01
      • 2018-09-08
      • 2019-03-01
      • 2016-01-10
      • 2018-11-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多