如何在firebase中的onvalue侦听器上获取orderbykey格式的按键

Posted

技术标签:

【中文标题】如何在firebase中的onvalue侦听器上获取orderbykey格式的按键【英文标题】:how get push keys in orderbykey formate on onvalue listener in firebase 【发布时间】:2018-03-20 06:35:45 【问题描述】:

我在我的 firebasedb 中有这个甲酸盐的密钥我想在 valuelistner 上按值甲酸盐顺序获取这些密钥

虽然我正在尝试以不同的顺序排列

喜欢这个

  -KvhErzQOG2GE8XfzQhC 
  -KvhZRuIsl4ZbqNCrXt9
  -KvhZf3gwTsfOHsXP2M6
  -KvhLinnA_VC4KjFs_4Y: 
  -KvbPEAK39kHu98iW8Br: 
  -KvbPeRa4Bw8TEl8y5_J: 

我的代码看起来像这样

 _messagesRef.child('xx').child('xxx').child('xxx').orderByKey().onValue.listen((Event event)
var response = event.snapshot.value;);

有人可以帮忙吗?

【问题讨论】:

【参考方案1】:

当您对 Firebase 数据库执行查询时,可能会有多个结果。所以快照包含这些结果的列表。即使只有一个结果,快照也会包含一个结果列表。

我建议听onChildAdded,它会按顺序触发,这也是the Flutter sample 所做的:

_messagesSubscription =
    _messagesRef.limitToLast(10).onChildAdded.listen((Event event) 
  print('Child added: $event.snapshot.value');
);

或者你可以听onValue然后循环event.snapshot.children,但我没有一个方便的例子。

【讨论】:

我希望 onvalue listner 不添加子项,并且在 onvalue listner orderbykey().limittolast(x) 中我不想 x 并且我不想多次访问数据库 感谢您的回复,我正在正确添加孩子,但我想要 onvalue

以上是关于如何在firebase中的onvalue侦听器上获取orderbykey格式的按键的主要内容,如果未能解决你的问题,请参考以下文章

Flutter 实时数据库 onValue 解析

如何在 Flutter 中为 Firebase 连接设置监听器?

如何实现一个 Firebase 监听器来观察数据库的实时变化

在明确删除之前,SingleValueEvent 侦听器是不是计入 Firebase RealTime DB 中的“同时连接”?

如何在 OnDestroy 中删除此 firebase 侦听器以减少内存泄漏?

删除 Firebase java 中的所有侦听器