Android
Kotlin
android開発
Firebase
FirebaseRealtimeDatabase

Firebase Realtime Database (Kotlin) で子の数だけ繰り返し処理したいとき

準備

https://qiita.com/Natsuki_on_Rails/items/c3d76b3fa2048f214aac

実装

// ...

//①Firebase Databaseのインスタンスを取得
val database = FirebaseDatabase.getInstance()
//②リファレンスを取得
val myRef = database.getReference("hoge")
//③データを取得するお決まりのやつ(リスナーを用意して二つのメソッドをオーバーライド)
myRef.addValueEventListener(object : ValueEventListener {
    override fun onDataChange(dataSnapshot: DataSnapshot) {
        //④dataSnapshotに子供がいると↓こんな感じでループできる
        for (h in dataSnapshot.children){
            val value = h.getValue(Int::class.java)
        }
    }
    override fun onCancelled(error: DatabaseError) {
        // ...
    }
}

こんなかんじで書けば子供の数だけ処理できる。