Swift viewcontroller firebase 数据库观察者重复调用

Posted

技术标签:

【中文标题】Swift viewcontroller firebase 数据库观察者重复调用【英文标题】:Swift viewcontroller firebase database observer repeat calling 【发布时间】:2017-07-18 21:52:09 【问题描述】:

在我的 xcode 项目中,我有 2 个视图控制器:A 和 B,它们都连接到同一个 firebase 参考节点,并监听相同的数据。

我的问题是,例如:如果我在这两个视图控制器之间来回切换 7 次(或者与我在 A 和 B 视图控制器之间来回切换的次数一样多),一旦我单击一个按钮执行一个action,触发了一个firebase观察者,view controller A被触发了7次,因为我加了

print("action is triggered")

在视图控制器 A 中,此行在调试器中打印 7 次。我一直试图弄清楚为什么 7 次,计数保存在哪里?我尝试使用 Firebase 提供的文档删除 firebase 观察者,但没有运气,可能问题来自这些视图控制器之间来回穿梭。这些视图控制器从未被移除,但我从不记得我需要移除视图控制器!我试图在这里找到任何讨论并用谷歌搜索,但我没有运气。

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

【问题讨论】:

您可能会在每次显示控制器时设置新的侦听器。你能展示你的代码吗? 【参考方案1】:

我刚刚发现要删除重复过程,我可以使用 firebase 文档提供的删除观察者,并且重复问题已解决,您的提示效果很好,我搜索了主题提示并在堆栈流中找到了答案。谢谢

【讨论】:

以上是关于Swift viewcontroller firebase 数据库观察者重复调用的主要内容,如果未能解决你的问题,请参考以下文章

Swift:关闭 viewController 1 然后呈现 viewController 2

通过另一个 viewController 显示一个 viewController,Swift

如何将 ViewController.swift 连接到 Storyboard 中的 ViewController?

使用 Swift 呈现新的 Viewcontroller 后如何关闭以前的 Viewcontroller?

swift ViewController.swift

swift ViewController.Swift