Skip to content

Instantly share code, notes, and snippets.

@Sloy
Created September 12, 2017 18:55
Show Gist options
  • Select an option

  • Save Sloy/bf6d2e30b87e710bbf428140337076a5 to your computer and use it in GitHub Desktop.

Select an option

Save Sloy/bf6d2e30b87e710bbf428140337076a5 to your computer and use it in GitHub Desktop.
Using LiveData with Firebase Database on Kotlin
class FirebaseLiveData(
private val reference: DatabaseReference
) : LiveData<DataSnapshot>() {
private var eventListener: ValueEventListener? = null
override fun onActive() {
super.onActive()
logd("onActive $reference")
eventListener = reference.addValueEventListener(FValueEventListener(
onDataChange = { data ->
value = data
},
onError = { error ->
loge("FirebaseLiveData error", error.toException())
}
))
}
override fun onInactive() {
super.onInactive()
logd("onInactive $reference")
eventListener?.let {
reference.removeEventListener(it)
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment