c# - 无法取消订阅 Firebase 中的侦听器
问题描述
我在我的 Firebase 实时数据库中设置了一个监听器,它会注意到用户朋友数据的变化。但是当用户从他的朋友列表中删除其中一位朋友时,我想取消订阅这些数据更改。我尝试这样做如下:
databaseReference.Child("usernames").Child(removedFriendName)
.ChildChanged -= HandleChildChangedFriend;
数据库的引用和路径与我订阅数据更改时完全相同。但是,在用户从他的好友列表中删除某人后,他仍然会收到来自此 EventListener 的更新。
希望有人可以帮助我:)
解决方案
好的,我终于找到了使我的代码工作的解决方案,但我仍然不明白为什么它以前不起作用。没关系我猜:)
我改变的一件事是我在添加 EventListener 的那一刻将 databaseReference 保存在一个变量中,然后再次使用这个变量来删除监听器。
DatabaseReference friendReference = databaseReference.Child("usernames").Child(friendName);
friendReference.ChildChanged += HandleChildChangedFriend;
//Later
friendReference.ChildChanged -= HandleChildChangedFriend;