获取Firestore集合中所有键的名称

时间:2020-06-11 06:21:14

标签: android firebase kotlin google-cloud-firestore

我的Firebase数据结构如下:

Firebase Data

如何获取集合(人)中第一个文档(0)中所有键的名称。这些值是动态分配的,因此我无法直接查询文档,只能查询集合人员。

1 个答案:

答案 0 :(得分:0)

您将只需要阅读文档。请参阅reading a document from Firestore的文档。

firestore
    .collection("People")
    .document("0")
    .get()
    .addOnSuccessListener { document ->
        if (document != null) {
            Log.d(TAG, "DocumentSnapshot data: ${document.data}")
        } else {
            Log.d(TAG, "No such document")
        }
    }

在成功侦听器内部,DocumentSnapshot将包含一个字段映射,以表示您可以使用getData()获得的值:

    .addOnSuccessListener { document ->
        if (document != null) {
            val map = document.getData()
            // map has keys with values and values with data
        } else {
            Log.d(TAG, "No such document")
        }
    }

如果您不知道文档的ID,则无法有效地查询它。 Firestore不会对文档强加命令。您在控制台中看到的只是文档ID的字母顺序列表,该列表与它们的添加顺序无关。

如果需要订购文档,则应使用一些字段值(例如时间戳记值),并使用该字段值查询集合以找到最新的值。