如何从 Firebase 实时数据库中获取密钥

How to get just keys from Firebase Realtime Databse

我在 Firebase 的实时数据库中有以下设置:

- my_db_rtdb
  -- daily_data
     -- A
        + 0
        + 1
        + 2
        + 3
     -- K
        + 0
        + 1
        + 2
     -- R
        + 0
        + 1
        + 2
        + 3
     -- S
        + 0
        + 1

实际的数据树相当大。 每个daily_data/<item>可以有多个孩子,其中<item>AK等,如上所示。

从这个设置中,我需要获取 daily_data 下的键列表。在上面的特定示例中,我需要编写一个 Python 脚本,它将给我列表 ["A", "K", "R", "S"].

而且我想在不下载所有内容的情况下执行此操作,因为数据非常大。

如何在 Python 中实现此目的?我无法通过阅读文档向我解释清楚。

您需要的是所谓的“浅查询”,其结果将包含当前节点的值,但不包含任何嵌套在其下的内容。这种类型的查询只能在 select 没有缓存层的 SDK 中访问,例如 Admin SDK,或者您可以通过 REST API directly 访问这些查询。根据您的用例,考虑构建索引。

import firebase_admin
from firebase_admin import db

# ... init the SDK ...

ref = db.reference('my_db_rtdb/daily_data') # may only need to be /daily_data (unclear from your question)

# first arg must be False for shallow queries
# ref.get(includeEtag, shallowQuery)
valueAtRef = ref.get(False, True) # as a dict

print(valueAtRef) # print the dict
print([*valueAtRef]) # get the keys as a list

ref#get(etag, shallow) 的文档可以在 Python Admin SDK Reference 中找到。