Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Firebase接收更新,但不';t触发器.on(';子对象已更改';)_Javascript_Angularjs_Firebase_Firebase Realtime Database_Firebase Authentication - Fatal编程技术网

Javascript Firebase接收更新,但不';t触发器.on(';子对象已更改';)

Javascript Firebase接收更新,但不';t触发器.on(';子对象已更改';),javascript,angularjs,firebase,firebase-realtime-database,firebase-authentication,Javascript,Angularjs,Firebase,Firebase Realtime Database,Firebase Authentication,当我第一次加载页面时,firebase工作正常。对任何数据点的任何更改都会触发此功能: database.ref('users').on('child_changed, function...) 但是,当我注销,然后重新登录时,我可以看到数据库正在更新,但是在我重新加载页面之前,更改不会再触发。重新加载后,任何更改都会正确反映,但注销/登录会以某种方式停止侦听更改 我不希望用户每次想注销然后重新登录时都必须重新加载 我是否需要另一个Firebase侦听器?除了这四个,我没有找到其他的: chi

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

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

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

我是否需要另一个Firebase侦听器?除了这四个,我没有找到其他的:

child_removed, child_changed, child_added, value, 

因此,任何建议都将不胜感激。

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


这样,每当客户端和数据库中发生更改时,DOM元素就会自动更新

你可以在这里找到更多的听众:@RosárioPereiraFernandes谢谢!我看着他们,但什么都不管用。我尝试了多种方法来倾听变化,但除非我刷新页面,否则它不会起作用。