Kotlin Firebase foreach child 在路径中
Kotlin Firebase foreach child in path
我在 Kotlin 中有一个简单的 to-do 应用程序,我想在应用程序启动时从 firebase 中的“任务”节点获取数据。我想为每个 child 创建一个 Todo object.
var todo = Todo("child data here")
正在获取特定任务
val database = FirebaseDatabase.getInstance()
val ref = database.getReference("task")
var todo = ref.child("task1").key?.let { Todo(it) }
if (todo != null) {
todoAdapter.addTodo(todo)
}
I want to get all children, there can be more than three.
如果你想得到一个特定节点的所有子节点,不管那里实际有多少个,那么你应该使用 getChildren()
方法遍历该节点,正如你在下面几行中看到的代码:
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) //
}
}
override fun onCancelled(error: DatabaseError) {
Log.d("TAG", error.getMessage()) //Never ignore potential errors!
}
}
taskRef.addListenerForSingleValueEvent(valueEventListener)
logcat 中的结果将是:
task1
task2
task3
.....
我在 Kotlin 中有一个简单的 to-do 应用程序,我想在应用程序启动时从 firebase 中的“任务”节点获取数据。我想为每个 child 创建一个 Todo object.
var todo = Todo("child data here")
正在获取特定任务
val database = FirebaseDatabase.getInstance()
val ref = database.getReference("task")
var todo = ref.child("task1").key?.let { Todo(it) }
if (todo != null) {
todoAdapter.addTodo(todo)
}
I want to get all children, there can be more than three.
如果你想得到一个特定节点的所有子节点,不管那里实际有多少个,那么你应该使用 getChildren()
方法遍历该节点,正如你在下面几行中看到的代码:
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) //
}
}
override fun onCancelled(error: DatabaseError) {
Log.d("TAG", error.getMessage()) //Never ignore potential errors!
}
}
taskRef.addListenerForSingleValueEvent(valueEventListener)
logcat 中的结果将是:
task1
task2
task3
.....