繁体   English   中英

Firebase RTDB:如何根据嵌套字段过滤子事件?

[英]Firebase RTDB: How to filter child events based on a nested field?

鉴于我的 Firebase 实时数据库中的每个条目都有一个version字段,表示它上次编辑的时间戳,我如何按版本过滤它们,以便只传递比 X 更新的子事件?

val listener = object : ChildEventListener {
    // Not relevant
}

val ref = database.getReference("exercises").child("userId")
ref.addChildEventListener(listener)

// TODO: ref.filter(version>localVersion)

关于我为什么要这样做的背景。 有很多条目,虽然我想知道它们何时发生变化,但始终观察所有条目会导致 memory 占用空间太大(> 150 mb)。

Json 数据 model 的表示(练习):

{
  "details" : {
    "category" : "LIFT",
    "equipment" : "CABLE_MACHINE",
    "muscles" : [ "BACK" ],
    "name" : "Row in Cable Machine",
    "status" : "AVAILABLE"
  },
  "id" : "1",
  "source" : "CUSTOM",
  "version" : 1648446264560 // This is the field Id like to filter on.
}
  • 我如何按版本过滤它们,以便只传递比 X 更新的子事件?

由于您提交的version是一个数字,要仅获取比特定值更新的对象,您可以使用Query#startAt() function,其中:

使用给定的 orderBy 指令或优先级作为默认值,创建一个限制为仅返回值大于或等于给定值的子节点的查询。

或者Query#startAfter() function 那:

使用给定的 orderBy 指令或优先级作为默认值,创建一个限制为仅返回值大于给定值的子节点的查询。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM