Android FirebaseDatabase查询-日期高于现在的筛选器

Android FirebaseDatabase查询-日期高于现在的筛选器,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我有许多Firebase事件项,它们的日期时间存储为历元 我想做的是获取当前时间,然后过滤尚未发生的结果。目前我只是按日期时间订购 那么,我该如何添加一个条件,使“datetime”高于“time” JSON Firebase实时数据库查询遵循两步过程: 您可以在给定属性(orderByChild)、值(orderByValue)或其键(orderByKey)上的位置下对子节点进行排序 您可以使用startAt()、endAt()、equalTo()、limitToFirst()和limitTo

我有许多Firebase事件项,它们的日期时间存储为历元

我想做的是获取当前时间,然后过滤尚未发生的结果。目前我只是按日期时间订购

那么,我该如何添加一个条件,使“datetime”高于“time”

JSON


Firebase实时数据库查询遵循两步过程:

  • 您可以在给定属性(
    orderByChild
    )、值(
    orderByValue
    )或其键(
    orderByKey
    )上的位置下对子节点进行排序

  • 您可以使用
    startAt()
    endAt()
    equalTo()
    limitToFirst()
    limitToLast()
    告诉数据库要返回子节点的哪个片段

  • 在您的情况下,您需要使用类似以下内容的
    startAt()

    long time = System.currentTimeMillis();
    
    Query query = FirebaseDatabase.getInstance()
            .getReference()
            .child("Events")
            .orderByChild("datetime");
            .startAt(time + 1)
    

    此处的
    time+1
    确保返回的结果在当前时间之后。

    这取决于在数据库中存储
    datetime
    的方式。请编辑您的问题,在
    事件
    中包含一段JSON(作为文本,请不要截图)。您可以通过单击溢出菜单中的“导出JSON”链接来实现这一点(⠇) 在您的上。我已添加了代码片段。谢谢。这还不够让我们确定。我将在下面写出我的最佳猜测答案,但请确保我们看到
    事件
    节点及其一些子节点(至少包括相关属性)。我现在理解了它。非常感谢。
    
      "date" : "Sat 7th March",
      "datetime" : 1583618400,
    
    long time = System.currentTimeMillis();
    
    Query query = FirebaseDatabase.getInstance()
            .getReference()
            .child("Events")
            .orderByChild("datetime");
            .startAt(time + 1)