正如文档所说,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);
}
});
答案 0 :(得分:12)
没有。不需要像在代码片段中那样删除侦听器。
您可能想要删除once
侦听器的唯一原因是侦听器尚未触发的时间。我唯一能看到发生这种情况的时候是你没有连接到Firebase服务器,而且你正在检查的位置没有被缓存。这应该是相当少的案例。