小编Cas*_*ero的帖子

删除Firebase java中的所有侦听器

我知道文档说"//在Java中,必须明确删除每个侦听器." 但有一个问题.

我部署我的应用程序 - 添加一个监听器(保存指针).但是,当我重新部署我的应用程序时,监听器仍然存在,但我无法删除它,因为我没有指针.:(

那么如何删除所有听众呢?(没有服务器重启)

java android listener firebase firebase-realtime-database

18
推荐指数
1
解决办法
3592
查看次数

等着回来,好吗?

第一个firebase调用的一些主要代码:

     refFB.addChildEventListener(new ChildEventListener() {
            @Override
            public void onChildAdded(DataSnapshot snapshot, String previousChildName) {
                FirebaseReq fbReq = snapshot.getValue(FirebaseReq.class);
                service(fbReq);
            }
...
        });
Run Code Online (Sandbox Code Playgroud)

对于维护和可读性,对我来说更清楚:

Run service(fbReq) in new thread.

 public void service(FirebaseReq firebaseReq) {
            value = dao(firebaseReq);
            /*some other code which use value*/
 }

public String dao(FirebaseReq firebaseReq) {
        String result = null;
        //the second firebase call
        childRef.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot snapshot) {
               result = snapshot.getName();
            }
          ...
       });
        while (result== null){
        }   
        return result;
}
Run Code Online (Sandbox Code Playgroud)

或者更好地避免线程和等待循环,但具有不可读代码:

 public void service(FirebaseReq …
Run Code Online (Sandbox Code Playgroud)

java firebase

1
推荐指数
1
解决办法
344
查看次数