【问题标题】:Flutter Firebase realtime once().then() doesn't get updated when rerun [closed]Flutter Firebase realtime once().then() 重新运行时不会更新[关闭]
【发布时间】:2019-09-16 01:15:37
【问题描述】:

Flutter Firebase realtime once().then() 重新运行时不会更新

当我使用 once.then 读取数据时,如果我再次运行它,它不会更新变量或给出 null

【问题讨论】:

  • 因为这种情况随机发生了很多次。所以我质疑的是一次。然后就是问题所在。就像它发生在某些节点上,如果我创建新节点,它直到以后才会发生

标签: firebase firebase-realtime-database dart flutter


【解决方案1】:

once() 方法正如其名称所暗示的那样:它读取数据一次,并且不监视更新。正如documentation 所说:

侦听单值事件,然后停止侦听。

要获得实时更新,请使用on... 流之一,例如onValue

当此位置的数据更新时触发。

【讨论】:

  • 我的问题是当我运行 once() 方法然后更新值并重新运行 once() 方法时,它仍然会保留以前的值
  • 这是因为您没有更改服务器端的数据。您只是在本地编辑它!
  • 您是否启用了磁盘持久性?
  • oooooh 谢谢你,我是按照一些指示去做的,然后忘记了。删除它修复它。
  • 是的,disk persistence and once() don't mix well,因为once() 急切地返回本地结果,您可能想知道来自服务器的结果。这是我们在 Cloud Firestore API 中更改的内容,其中get() 默认等待来自服务器的结果。
猜你喜欢
  • 2018-05-07
  • 1970-01-01
  • 2018-05-31
  • 2021-02-01
  • 2016-09-19
  • 2018-12-04
  • 2020-03-10
  • 2021-04-27
  • 1970-01-01
相关资源
最近更新 更多