如何从Firebase实时数据库

时间:2017-11-07 13:54:29

标签: android firebase firebase-realtime-database

要从Firebase实时数据库接收数据,我需要注册监听器:

objectReference.addValueEventListener(valueEventListener);

删除(取消注册)此侦听器的正确方法是什么?

3 个答案:

答案 0 :(得分:7)

删除侦听器的正确方法是使用以下代码行将其相应于活动的生命周期删除:

databaseReference.removeEventListener(valueEventListener);

请注意,如果您在onStart中添加了监听器,则必须在onStop中将其删除。如果您已在onResume中添加了监听器,则必须在onPause中将其删除。如果您在onCreate中添加了监听器,则必须在onDestroy中删除它。

但请记住,并不总是调用onDestroy

答案 1 :(得分:1)

最好检查侦听器是否为null或是否具有对象,因为如果侦听器对象为null,则将出现运行时错误

if(valueEventListener!=null){
  databaseReference.removeEventListener(valueEventListener);
}

答案 2 :(得分:0)

您也可以这样:

private void cmdVision_MouseDown(object sender, MouseEventArgs e)
{
    if (e.Button == MouseButtons.Left)
    {
        pnlNote.Enabled = true;
    }
}

private void cmdVision_MouseUp(object sender, MouseEventArgs e)
{
    if (e.Button == MouseButtons.Left)
    {
        pnlNote.Enabled = false;
    }
    //MAJ4
    else if (e.Button == MouseButtons.Right || e.Button == MouseButtons.Middle)
    {
        pnlNote.Enabled = false;
    }
    //MAJ4
}