我正在寻找从firestore中的特定字段获取值。下面是我的firestore示例json
{
"details":{
"name":"rahul",
"country":"India",
"phone":"1234567890"
},
"course":{
"subject":"cs",
"duration":"6 months"
}
}
我想从字段“详细信息”中获取数据。我尝试了下面的方法,但没有效果
override fun getStudentDetails() = callbackFlow {
val snapshotListener =
db.collection("studentDetails")
.document(Constants.FirestoreCollections.STUDENT_DETAILS_ID)
.collection(Constants.FirestoreCollections.Organisation.STUDENT_DETAILS)
.addSnapshotListener { snapshot, e ->
val taskResponse = if (snapshot != null) {
val tasks = snapshot.toObjects(Details::class.java)
Response.Success(tasks)
} else {
Response.Failure(e)
}
trySend(taskResponse)
}
awaitClose {
snapshotListener.remove()
}
}
有没有办法做到这一点?
2条答案
按热度按时间f45qwnt81#
您的
snapshot
对象是DocumentSnapshot
,如果您想获取特定字段,可以调用get("details.name")
(或任何其他相关路径)。z9ju0rcb2#
要获取所提供JSON数据中特定字段的值,可以使用点表示法访问该字段。例如,要获取“name”字段的值,可以使用以下代码:
jsonData.详细信息.名称
这将返回值“rahul”。类似地,您可以使用点符号访问JSON数据中的其他字段,如“country”或“duration”。
例如,要获取“duration”字段的值,可以使用以下代码:
jsonData.课程.持续时间
这将返回值“6个月”。
还可以使用方括号表示法来访问JSON数据中的字段。例如,下面的代码也将返回“name”字段的值:
jsonData [“详细信息”][“名称”]
请记住,JSON数据中的字段名区分大小写,因此在访问它们时请确保使用正确的大写。