首页 > 解决方案 > 无法取消订阅 Firebase 中的侦听器

问题描述

我在我的 Firebase 实时数据库中设置了一个监听器,它会注意到用户朋友数据的变化。但是当用户从他的朋友列表中删除其中一位朋友时,我想取消订阅这些数据更改。我尝试这样做如下:

databaseReference.Child("usernames").Child(removedFriendName)
.ChildChanged -= HandleChildChangedFriend;

数据库的引用和路径与我订阅数据更改时完全相同。但是,在用户从他的好友列表中删除某人后,他仍然会收到来自此 EventListener 的更新。

希望有人可以帮助我:)

标签: c#firebasefirebase-realtime-database

解决方案


好的,我终于找到了使我的代码工作的解决方案,但我仍然不明白为什么它以前不起作用。没关系我猜:)

我改变的一件事是我在添加 EventListener 的那一刻将 databaseReference 保存在一个变量中,然后再次使用这个变量来删除监听器。

DatabaseReference friendReference = databaseReference.Child("usernames").Child(friendName);

friendReference.ChildChanged += HandleChildChangedFriend;

//Later 

friendReference.ChildChanged -= HandleChildChangedFriend;

推荐阅读