Firebase Realtime Database Single Value Listener Triggering Many Times
I'm trying to receive data from database in other value listener. class MyFragment : Fragment() { private lateinit var reference: DatabaseReference override fun onCreate(savedIns
Solution 1:
you're using a singleEventListener
in your second query, but in your first you're still using a normal event listener that won't go away automatically. So that might be the reason why your code gets called multiple times. So the problem is not that you're single event listener is being called multiple times, but the one above might be and everytime it creates a new single event listener which in turn call your method multiple times.
reference.addValueEventListener(object : EventListener() { //ordinary event listener will be kept running overridefunonDataChange(p0: DataSnapshot?) {
val childOfSecondRoot= p0?.value
FirebaseDatabase.getInstance().reference.child("SECOND_ROOT")
.child(childOfSecondRoot).addListenerForSingleValueEvent(object : EventListener() {
overridefunonDataChange(p0: DataSnapshot?) {
doingMyJob(p0?.value)
}
})
}
})
Solution 2:
Funny thing. Method doMyJob
after show dialog launch new fragment (sorry for missed it in my question) and after I close it fragment which add listener in onActivityCreated is relaunched so... val reference
is assigned again and another listerer is added.
I just love this kind of bugs. Thanks everybody for help.
Post a Comment for "Firebase Realtime Database Single Value Listener Triggering Many Times"