检索Cloud Firestore查询中字段的所有值

时间:2019-03-19 21:36:19

标签: android firebase kotlin google-cloud-firestore

我的user集合中的每个users都有三个字段:nameagegender

我只是想创建一个包含所有名称的List(名称为String)。我该怎么办?

db.collection("phones").document(applicationID)
    .collection("users")
    .get()
    .addOnSuccessListener { result ->
        // something
        val users: List<String> = result.document.data("name").values // this is obviously the wrong syntax 
}

1 个答案:

答案 0 :(得分:0)

您将必须迭代侦听器收到的QuerySnapshot中的文档(此处的QuerySnapshot变量为result)。该QuerySnapshot包含结果中每个文档的DocumentSnapshot。 QuerySnapshot实现Iterable,因此您只需编写一个for循环即可按顺序处理每个快照。或者,您可以使用一些Kotlin便捷方法:

val names = result!!.map { snapshot ->
    snapshot["name"].toString()
}

names将是List<String>