如何将我的 Firestore 数据库从 Google Storage Bucket 导出到 Json 文件中

问题描述

情况是这样的:我有一个 Firestore 数据库。我每天都将它下载到 Google Cloud Storage Bucket 作为备份。如果我想在本地下载它,我会使用这个命令 gsutil -m cp -r gs://BUCKET_PATH "DESTINATION_PATH" 来完成它并且它工作正常。

我的问题:我下载的 Bucket 格式是 LevelDB(我认为)。在我的机器上,它看起来像这样:

enter image description here

例如,当我通过 Google Storage 下载它时,这是我在 Firestore 中的 /users 集合。在文件夹中,我有多个二进制文件(“output-...”)和一个用于元数据的文件(此处为“all_namespaces_kind_users”)。

我的目标:我希望能够在 json 文件中读取我的数据库

我的尝试

#repoRoot = os.getcwd()
repoRoot = os.path.dirname(os.path.realpath(__file__))

# import google sdks
sys.path.append(os.path.join(repoRoot,'SDKs/google_appengine'))
sys.path.append(os.path.join(repoRoot,'SDKs/google-cloud-sdk/lib/third_party'))
from google.appengine.api.files import records
from google.appengine.datastore import entity_pb
from google.appengine.api import datastore

我的问题:如何将我的 Firestore 数据库(存储在 Google Bucket 中)转换为 json 文件? 也许有人有完全不同的建议方法?还是我应该坚持我的方式?在这种情况下,我如何使用更新的 google 库完成将转换器转换为 python3 的工作?

额外问题:Google 怎么没有一个干净的解决方案? (还是我傻?)

解决方法

我在 Python 3 中创建了一个转换器,可以将 Firestore 导出文件转换为 JSON 文件 https://developers.google.com/youtube/v3/guides/ios_youtube_helper。该软件包提供了一个简单的 CLI 命令来隐藏文件。

fs_to_json [path_to_source_dir] -d [path_to_destination]