【问题标题】:Android Firebase Eventlistener called twice on data change [duplicate]Android Firebase Eventlistener 在数据更改时调用了两次 [重复]
【发布时间】:2020-08-15 07:14:30
【问题描述】:

我有一个附加到 firebase 的事件侦听器。但是事件侦听器在数据更改时被调用两次。我觉得我没有正确删除听众。有人可以指导这里是我的代码:

我在 onStart() 中有如下监听器

        ref5 = appRef.orderByChild("*****").equalTo(*****)
        listenerApp = ref5.addValueEventListener(object: ValueEventListener {
            override fun onCancelled(p0: DatabaseError) {
                Toast.makeText(this,"Error", Toast.LENGTH_LONG).show()
            }

            override fun onDataChange(p0: DataSnapshot) {

  // Do Something
    }
  })

监听器在 onStop() 内部如下分离

if((this::listenerApp.isInitialized)&&(this::ref5.isInitialized)) ref5.removeEventListener(listenerApp)

我哪里错了?

还有一件事是听者并不总是被唤起两次。偶尔会发生

【问题讨论】:

    标签: android firebase firebase-realtime-database


    【解决方案1】:

    为什么不监听一次数据,使用addListenerForSingleValueEvent

    listenerApp = ref5.addListenerForSingleValueEvent(object: ValueEventListener {
    override fun onCancelled(p0: DatabaseError) {
    Toast.makeText(this,"Error", Toast.LENGTH_LONG).show()
    }
    .....
    .....
    .....
    

    【讨论】:

    • 我的问题是听众在一次数据更改时被唤起两次。我不能使用单值事件侦听器,因为数据更改了多次
    猜你喜欢
    • 2016-10-07
    • 2019-10-06
    • 1970-01-01
    • 2018-10-02
    • 2019-03-13
    • 1970-01-01
    • 2021-10-21
    • 2021-12-29
    • 1970-01-01
    相关资源
    最近更新 更多