【问题标题】:Firebase receives update but doesn't trigger .on('child_changed')Firebase 收到更新但未触发 .on('child_changed')
【发布时间】:2017-06-20 04:37:52
【问题描述】:

当我第一次加载页面时,firebase 工作得很好。对任何数据点的任何更改都会触发此功能:

database.ref('users').on('child_changed, function...)

但是,当我注销然后重新登录时,我可以看到数据库正在更新,但在我重新加载页面之前,更改不再触发。重新加载后,任何更改都会正确反映,但注销/登录会以某种方式停止监听更改。

我不希望用户每次想要注销然后重新登录时都必须重新加载。

也许我需要另一个 Firebase 监听器?除了这四个,我没有找到任何其他:

child_removed, child_changed, child_added, value, 

所以任何建议将不胜感激。

【问题讨论】:

  • 您可以在这里找到更多听众:firebase.google.com/docs/database/web/read-and-write
  • @RosárioPereiraFernandes 谢谢!我看着他们,但没有任何作用。我尝试了多种方法来监听变化,但除非我刷新页面,否则它不起作用。

标签: javascript angularjs firebase firebase-realtime-database firebase-authentication


【解决方案1】:

我找到了解决方案!我没有将数据库侦听器放在 angular .run() 方法中,而是重构了代码,以便侦听器位于 .factory() 内部。现在,每次用户登录/注销时,都会向工厂咨询数据库中的任何更改。

这使得每次客户端和数据库发生变化时都会自动更新 DOM 元素。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-04
    • 1970-01-01
    • 1970-01-01
    • 2019-02-27
    • 1970-01-01
    • 1970-01-01
    • 2019-06-09
    • 1970-01-01
    相关资源
    最近更新 更多