我将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;
答案 0 :(得分:1)
不,他们不会堆叠。
基本上,如果您尝试取消注册两次(或更多),从第二次开始就没有任何事情发生(没有例外)。
因此,代码的最后两行将导致HandValueChanged
注册到ValueChanged
,无论之前是否已注册。