0

在我的xcode项目中,我有2个视图控制器:A和B,它们都连接到相同的firebase参考点,并侦听相同的数据。Swift viewcontroller firebase数据库观察者重复调用

我的问题是,例如:如果我在这两个视图控制器之间来回切换7次(或者我在A和B视图控制器之间来回切换的次数),一旦我点击按钮执行一个动作,一个火力观察者被触发,则触发视图控制器A 7次,因为我在视图控制器A加入

print("action is triggered") 

,并且这条线是打印在调试器的7倍。我一直试图找出为什么7次,计数保存在哪里?我试图使用Firebase提供的文档移除firebase观察者,但没有运气,可能问题来自这些视图控制器之间来回穿梭。这些视图控制器从未被删除,但我永远不会记得我需要删除视图控制器!我尝试在这里找到任何讨论并将其谷歌,我没有运气。

我试图做的是检测Firebase数据库内部的数据更改,如果数据库中发生了某些变化,按钮功能发生变化并执行某些不同的功能。一切正常,直到我发现这个循环问题。有没有其他人遇到同样的问题?

+0

您可能会在每次显示控制器时设置新的列表器。你能显示你的代码吗? – VA79

回答

0

我刚刚发现删除了重复的过程,我可以使用firebase文档提供的remove observer,并且重复问题已解决,您的提示很有用,我使用主题提示并在堆栈流程中找到答案。谢谢