我应该在使用"addListenerForSingleValueEvent"后删除

won*_*suc 4 android firebase firebase-realtime-database

正如文档所说,SingleValueEvent的监听器只运行一次.
那么在使用它之后是不必删除监听器?

final Query query = getChatsRef().limitToLast(20);
query.addListenerForSingleValueEvent(new ValueEventListener() {

    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        query.removeEventListener(this);         
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        query.removeEventListener(this); 
    }
});
Run Code Online (Sandbox Code Playgroud)

Fra*_*len 12

不需要像删除代码片段那样删除侦听器.

您可能想要删除once侦听器的唯一原因是侦听器尚未触发的时间.我唯一能看到发生这种情况的时候是你没有连接到Firebase服务器,而且你正在检查的位置没有被缓存.这应该是相当少的案例.

  • 这将非常适合包含在 addListenerForSingleValueEvent 下的参考文档中。谢谢。 (2认同)