Firebase数据库删除没有存在的监听器ValueChanged - =?

时间:2018-02-20 12:15:06

标签: c# unity3d firebase-realtime-database

我将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;

1 个答案:

答案 0 :(得分:1)

不,他们不会堆叠。

基本上,如果您尝试取消注册两次(或更多),从第二次开始就没有任何事情发生(没有例外)。

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