如何从Firestore (Android)的特定字段获取数据



我希望从firestore中的特定字段获得值。下面是来自firestore

的json示例
{
"details":{
"name":"rahul",
"country":"India",
"phone":"1234567890"
},
"course":{
"subject":"cs",
"duration":"6 months"
}
}

我想从字段&;details&;中获取数据。我尝试了下面的方法,它不工作

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()
}
}

有办法做到这一点吗?

您的snapshot对象是DocumentSnapshot。如果你想获得一个特定的字段,你可以调用get("details.name")(或任何其他相关的路径)。

要获取所提供的JSON数据中特定字段的值,可以使用点表示法访问该字段。例如,要获取"name"的值字段,则可以使用以下代码:

jsonData.details.name

返回值"rahul"。类似地,您可以使用点表示法访问JSON数据中的其他字段,例如"country";或"duration".

例如,要获取"duration"的值字段,则可以使用以下代码:

jsonData.course.duration

这将返回值"6个月"。

还可以使用方括号表示法访问JSON数据中的字段。例如,下面的代码也将返回"name"字段:

jsonData("细节")("名字")

请记住,JSON数据中的字段名是区分大小写的,所以在访问它们时请确保使用正确的大写字母。

相关内容

  • 没有找到相关文章