繁体   English   中英

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

[英]How to get data from a specific field in Firestore (Android)

我希望从 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()
    }
}

有什么办法可以做到这一点?

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

要获取您提供的 JSON 数据中特定字段的值,您可以使用点符号来访问该字段。 例如,要获取“name”字段的值,可以使用如下代码:

jsonData.details.name

这将返回值“rahul”。 同样,您可以使用点符号来访问 JSON 数据中的其他字段,例如“国家/地区”或“持续时间”。

例如,要获取“持续时间”字段的值,可以使用以下代码:

jsonData.course.duration

这将返回值“6 个月”。

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

jsonData['详细信息']['名称']

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM