【问题标题】:Firebase Database Remove Listener That Didn't Exist ValueChanged -=?Firebase 数据库删除不存在的侦听器 ValueChanged -=?
【发布时间】:2018-02-20 22:37:24
【问题描述】:

我正在将 Firebase 数据库集成到我的 Unity 项目中。我需要一个函数来根据输入从不同的数据库引用中添加和删除 ValueChanged 侦听器。当调用删除侦听器的函数时,不能保证侦听器将就位。我想知道这会导致什么结果。

FirebaseDatabase.DefaultInstance.GetReference("exampleChild").Child(currentUserID).ValueChanged -= HandleValueChanged;

是否将底片堆叠起来,这样如果我稍后调用它,什么都不会发生?如果没有要删除的值,是否会忽略否定项?

FirebaseDatabase.DefaultInstance.GetReference("exampleChild").Child(currentUserID).ValueChanged -= HandleValueChanged;
FirebaseDatabase.DefaultInstance.GetReference("exampleChild").Child(currentUserID).ValueChanged += HandleValueChanged;

【问题讨论】:

    标签: c# unity3d firebase-realtime-database


    【解决方案1】:

    不,它们不堆叠。

    基本上,如果您尝试注销两次(或更多次),从第二次开始就没有任何反应(没有例外)。

    因此,代码的最后两行将导致HandValueChanged 注册到ValueChanged,无论之前是否注册过。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-24
      • 1970-01-01
      • 2015-09-07
      • 2021-08-13
      • 2014-02-27
      • 1970-01-01
      • 2017-09-09
      • 1970-01-01
      相关资源
      最近更新 更多