Home > front end >  Kotlin Firebase foreach child in path
Kotlin Firebase foreach child in path

Time:05-31

I have a simple to-do app in Kotlin and I want to get data from "task" node in firebase on app startup. For each child, I want to create a Todo object.

enter image description here

var todo = Todo("child data here")

Getting specific task

val database = FirebaseDatabase.getInstance()
val ref = database.getReference("task")
var todo = ref.child("task1").key?.let { Todo(it) }
if (todo != null) {
     todoAdapter.addTodo(todo)
}

CodePudding user response:

I want to get all children, there can be more than three.

If you want to get all children of a particular node, no matter how many are actually present there, then you should loop over that node using getChildren() method, as you can see in the following lines of code:

val db = FirebaseDatabase.getInstance().reference
val taskRef = db.child("task")
val valueEventListener = object : ValueEventListener {
    override fun onDataChange(dataSnapshot: DataSnapshot) {
        for (ds in dataSnapshot.children) {
            val value = ds.getValue(String::class.java)
            Log.d("TAG", value)

            //Create the desired object
            var todo = Todo(value) //           
  • Related