android - 如何在 Android 中停止 Firebase 事件监听器?

标签 android firebase firebase-realtime-database

我正在尝试从 Firebase 获取数据,当它完成关闭 Activity 时,Firebase 仍在监听器上工作,我尝试 removeEventListener 但它没有用,我该怎么做?

childEventListener = mOnline.child("Room").addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
            String val = dataSnapshot.getValue(String.class);

            opponentPlayers.add(val);
            enterOpponentRoom();

        }

        @Override
        public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {

        }

        @Override
        public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) {

        }

        @Override
        public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {

        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

        }
    });

这就是我试图移除监听器的方式

@Override
protected void onStop() {

    Log.d("onStop", "called");


    mOnline.child("Room").removeEventListener(childEventListener);


    super.onStop();


}

最佳答案

使用数据库中的最终路径创建一个 DatabaseReference 变量,在本例中为 mOnline.child("Room")。然后使用此引用添加监听器,然后将其删除。当您尝试使用与添加时相同的“子”方法删除监听器时,会发生一些事情。

关于android - 如何在 Android 中停止 Firebase 事件监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52393036/

相关文章:

android - 如果启用了错误,如何检查 TextInputLayout

android - Google Drive api Android 下载谷歌文档文件

android - 在android中获取街道的方向

ios - 如何使用 Swift 访问 Firebase 数据库中的一组键值?

android - 无法在android中使用HttpURLConnection发送带有图像的附加参数

javascript - Firebase Phone Auth 与 React Native Expo

javascript - 针对用户匿名登录的 Firebase 规则

ios - 如何使用 firebase 实现评论部分

Swift 自动完成 firebase 搜索

java - 如何从firebase :获取数据