如何将 Firestore 数据库从 Google 存储桶导出到 Json 文件

2024-03-03

情况如下:我有一个 Firestore 数据库。我每天都会将其下载到 Google Cloud Storage Bucket 作为备份。如果我想在本地下载它,我使用这个命令gsutil -m cp -r gs://BUCKET_PATH "DESTINATION_PATH"而且效果很好。

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

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

MY GOAL:我希望能够读取 json 文件中的数据库。

MY TRIES:

  • 我尝试使用这个转换器:https://github.com/Venryx/firestore-leveldb-tools https://github.com/Venryx/firestore-leveldb-tools但它使用Python2和一些旧的谷歌库。使用此转换器,我必须在本地下载 SDK(见下文)。
#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
  • 使用先前的转换器,我尝试使用以下建议将其更新到 Python3:https://github.com/Venryx/firestore-leveldb-tools/issues/1#issuecomment-674563473 https://github.com/Venryx/firestore-leveldb-tools/issues/1#issuecomment-674563473。我成功替换了第一个导入from google.appengine.api.files import records但其他两个则不然。
  • 对于另外两个:from google.appengine.datastore import entity_pb and from google.appengine.api import datastore, 我看到了这个 :https://pypi.org/project/protobuf-cloud-datastore-translator/ https://pypi.org/project/protobuf-cloud-datastore-translator/但我不完全理解。

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

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


我在 Python 3 中创建了一个转换器,可以将 firestore 导出文件转换为 JSON 文件firestore-导出-json https://github.com/labbots/firestore-export-json。该软件包提供了一个简单的 CLI 命令来转换文件。

fs_to_json [path_to_source_dir] -d [path_to_destination]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 Firestore 数据库从 Google 存储桶导出到 Json 文件 的相关文章

  • 如何在Jenkins上更改工作空间并建立记录根目录?

    我希望将 Jenkins 的数据写入驱动器 E 因为这是服务器上的大型驱动器 Jenkins 本身安装在 C 上 我怎么做 我看到的默认配置是 工作区根目录 ITEM ROOTDIR 工作区 构建记录根目录 ITEM ROOTDIR 构建
  • 在 selenium webdriver 中打开一个新窗口而不是新选项卡

    当在我的应用程序中手动单击链接时 它会在 Chrome 和 IE 中的新选项卡中打开 但是 当我的脚本运行时 该链接会在 IE 中的新窗口而不是新选项卡中打开 相同的脚本在 Chrome 中按预期运行 知道如何摆脱这个吗 更改 IE 的默认
  • Javascript/jQuery 外部高度()

    Does idOfLememt outerHeight 对所有浏览器产生相同的结果 IE7 有什么不同吗 只要去http api jquery com outerHeight http api jquery com outerHeight
  • 我如何用 javascript/jquery 进行两指拖动?

    我正在尝试创建当有两个手指放在 div 上时拖动 div 的功能 我已将 div 绑定到 touchstart 和 touchmove 事件 我只是不确定如何编写这些函数 就像是if event originalEvent targetTo
  • 服务器响应 PASV 命令返回的地址与建立 FTP 连接的地址不同

    System Net WebException 服务器响应 PASV 命令返回的地址与建立 FTP 连接的地址不同 在 System Net FtpWebRequest CheckError 在 System Net FtpWebReque
  • Android 的代码覆盖率[重复]

    这个问题在这里已经有答案了 可能的重复 Android测试代码覆盖率 Eclipse https stackoverflow com questions 3282702 android test code coverage eclipse
  • 关闭扫描仪是否会影响性能

    我正在解决一个竞争问题 在问题中 我正在使用扫描仪获取用户输入 这是 2 个代码段 一个关闭扫描器 一个不关闭扫描器 关闭扫描仪 import java util Scanner public class JImSelection publ
  • UWP 应用程序在与商店关联后崩溃

    我正在为 Windows 创建一个 cordova 应用程序 将应用程序与商店关联后 应用程序起始页变为白色空白 如果应用程序使用包标识名称 com something moretext 则该应用程序可以正常工作 但我的商店包身份名称是 5
  • 防止 Ada DLL 中的名称损坏

    有没有一种简单的方法可以防止在创建 Ada DLL 时 Ada 名称被破坏 这是我的 adb 代码 with Ada Text IO package body testDLL is procedure Print Call is begin
  • Swift 中的 quitFirstResponder

    我怎样才能用Apple的新语言实现它 Objective C 代码 void touchesBegan NSSet touches withEvent UIEvent event for UIView view in self view s
  • Maven2继承

    如果我有一个父 pom 并且想将其继承到多个项目 我通常通过添加到项目顶部来做到这一点
  • 如何用LoaderManager自动重新查询

    我有一个应用程序显示来自 SQLite DB 的数据 并且数据不断变化 所以显然 我认为我应该使用 LoaderManager 来显示数据 我读过一些关于将 LoaderManager 与 SQLite 结合使用的内容 然后看到了亚历克斯
  • 用 Beautiful Soup 进行抓取:为什么 get_text 方法不返回该元素的文本?

    最近我一直在用 python 开发一个项目 其中涉及抓取一些网站的一些代理 我遇到的问题是 当我尝试抓取某个知名代理站点时 当我要求 Beautiful Soup 查找 IP 在代理表中的位置时 它并没有按照我的预期执行操作 我将尝试查找每
  • JavaScript 中“键”的类型是什么?

    当我失去焦点并开始思考一个愚蠢的问题时 我遇到了这样的时刻 var a b value b 的类型是什么 我的意思不是 值 的类型 而是标记为 b 的实际键 背景 当我必须创建一个字符串键时 我开始想知道这一点 var a b value
  • 从 Teradata sql Assistant 将结果导出到 Excel 工作表

    我想通过在 Teradata SQL Assistant 中运行查询将结果导出到 Excel 工作表中 我使用了复制粘贴 但没有用 提前致谢 如果您将答案返回到 SQL Assistant 您应该能够从 文件 菜单中选择 保存答案集 然后
  • RavenDB:为什么我会在此多重映射/归约索引中获得字段空值?

    受到 Ayende 文章的启发https ayende com blog 89089 ravendb multi maps reduce indexes https ayende com blog 89089 ravendb multi m
  • 如何在 Symfony 4 中为测试环境设置数据库

    我对如何在 symfony 4 中为测试环境设置数据库感到困惑 我曾经在配置测试 ymlsymfony 3 及以下版本中的文件 最佳做法是什么 我应该重新创建一个学说 yaml文件输入配置 包 测试 该文档提到如何通过编辑 phpunit
  • 将 read.csv 与符号链接文件一起使用

    我正在尝试做什么 我的源文件非常大 我想避免将其复制到其他文件夹中 我决定创建一个指向大文件的符号链接并想使用read csv读取文件 文件夹结构 项目1 数据 源文件 csv 项目2 数据 别名到源文件 csv 什么地方出了错 读取源文件
  • 为什么 FMA _mm256_fmadd_pd() 内在函数有 3 个 asm 助记符:“vfmadd132pd”、“231”和“213”?

    有人可以向我解释一下为什么融合乘法累加指令有 3 种变体 vfmadd132pd vfmadd231pd and vfmadd213pd 而只有一个 C 内在函数 mm256 fmadd pd 为了简单起见 在 AT T 语法中 有什么区别
  • GAE 无法部署到 App Engine

    我正在尝试从 Eclipse 发布 Web 应用程序 我在 GAE 上创建了四个项目 可以通过登录我的帐户并查看控制台来查看它们 我已经改变了appengine web xml到项目的应用程序 ID 如果我将其更改为 GAE 上第一个创建的

随机推荐

  • 防止 Firestore 规则中的重复条目不起作用

    我尝试使用 Google Firestore 规则防止重复条目 但它不起作用 我正在尝试的规则是 service cloud firestore Prevent duplicate messages match databases data
  • 使用 Adob​​e Flex Builder 构建 iOS 应用程序 - 性能问题

    我正在使用 Adob e Flex builder 构建一个 iOS 应用程序 并使用 Adob e 的工具将其编译为 ipa 通过初步测试 我发现最终结果并不像本机代码那样丰富 也不那么快速或流畅 不要简单地说 为什么不直接使用 Obje
  • @PostFilter 和 @PreFilter 在 Spring Security 中如何工作?

    作为 Spring 安全注释的新手 我需要对以下代码进行澄清 PostFilter hasPermission filterObject READ or hasRole ROLE ADMIN public List
  • CDI 适用于常规 Java 应用程序吗?

    我有一个简单的 Maven 项目 包含三个类 在我的META INF我有我的空beans xml 每次我运行我的Main java我得到一个NullPointerException Exception in thread main java
  • 删除的 zip 文件会导致 e.Data.GetData("FileContents") 引发异常

    我正在尝试在 WPF 应用程序中为从 zip 存档中拖动的文件实现一个处理程序 处理程序应获取文件内容以进行进一步处理 我的环境 Windows7 安装7 zip Visual Studio 2012 Express Net 4 5 下面是
  • CakePHP 多重选择“选定”不起作用

    我的编辑表单中有一个多重选择输入 当回声时 selected变量将如下所示 MySQL PHP 但是 输入不会自动选择与标签匹配的选项 但是 当我手动输入所选选项时 它会自动选择这两个选项 例如
  • 亚马逊AWS通过Java API创建EBS(弹性块存储)

    我正在尝试找到一种方法来创建新的 EBS 并通过 AWSJavaSDK 以语法方式将其附加到正在运行的实例程序 我看到了使用命令行工具和基于休息的调用来做到这一点的方法 但没有办法通过正确的 SDK 你应该能够使用创建卷 http docs
  • Azure AD 与 sonarqube 集成

    我使用 nginx 反向代理在 https 上运行 sonarqube 这是我的 nginx 反向代理配置 server server name sonarqube mydomain co in access log var log ngi
  • ASP.net 模型视图演示器值得花时间吗?

    我这个周末正在阅读有关 ASP net MVP 模式的内容 似乎即使是最简单的任务也会花费太多精力 如果以 MVP 模式进行 回报似乎是在更大的项目中 但我想 如果我将会追随MVP 为什么不直接用 ASP net MVC 来做这个项目呢 我
  • 如果是 Chrome,请使用 WebP

    因为目前只有 Chrome 和 Opera 支持 WebP 所以我想知道是否可以针对这两个特定浏览器并将它们重定向以获取我网站的另一个版本 以便我可以帮助更快地优化我的网站下载速度 Thanks 我这样解决了这个问题 检查客户端是否在 Ac
  • 同时显示选项卡栏和列表操作栏。 (安卓蜂巢)

    有一种情况 我想在操作栏中同时使用选项卡栏和列表导航 文档说 我们可以将 Actionbar 置于列表导航模式或选项卡导航模式 有没有办法同时使用两者 任何指示 帮助 先感谢您 抱歉 您只能选择其中之一 话虽这么说 你可以使用android
  • Select2 4.0.x 多复选框 JS 插件

    我正在使用Select2控制与Select2 Multi checkboxes JS插件允许多复选框选择 以下演示显示该控件可以正常工作选择2 3 x http jsfiddle net wasikuss gx93rwnk http jsf
  • 如何以编程方式检查 iPhone 中是否安装了应用程序列表

    在我的应用程序中 我显示了应用程序列表 是否有可能发现 iPhone 中是否安装了应用程序数组 如果有可能 请有人快速提供相关代码来检查 iPhone 中是否安装了一系列应用程序 在过去你可以使用canOpenURL像这样的图书馆iHasA
  • .net 8 预览版 Linux 上托管的 Azure 应用服务无法启动,显然要求安装 8.0.0-rc

    最后 App Service 可以在 Linux 容器下的 NET 8 Preview 上运行 尚不支持 Windows 我创建了一个并部署了一个简单的应用程序 但容器没有启动 如下所示 2023 09 17T20 25 27 314076
  • Google 应用内支付:如何处理 Google 的回发 JWT

    也许这是一个愚蠢的问题 但我不是高级程序员 我有 已成功为我的应用程序设置应用内付款 但它只能工作 不使用回发 url 我已经在谷歌上搜索了很多个小时 试图自己解决这个问题 但没有 成功 希望有人能帮助我 我已经包含了脚本 处理发布数据这显
  • 创建模型时使用外键自动创建模型 - Django

    我正在我的网页上创建评论部分 并希望用户能够对评论投赞成票或反对票 我的模型是这样的 class Comment models Model owner models ForeignKey User body models TextField
  • Windows attrib 命令行程序不会删除只读属性?

    我使用 windows attrib 命令删除目录只读属性并将其设置回来 如下所示 attrib r C build attrib C build C build attrib r C build attrib C build R C bu
  • 原始浮点编码

    Update原来的问题不再是这个问题的适当问题 所以我将单独保留这个问题来演示我尝试 学到的内容和背景 很明显 这不仅仅是一个 Base64 变体 而且涉及更多一些 背景 我使用 python 3 x 进行编程主要是为了与开源程序 Blen
  • 在日期/时间调用方法

    我正在寻找一个modern在给定日期 时间执行给定方法的方法 ZonedDateTime尤其 我知道Timer类和Quartz库 如下所示 线程包括完整的解决方案 Java 在特定日期执行方法 关闭 https stackoverflow
  • 如何将 Firestore 数据库从 Google 存储桶导出到 Json 文件

    情况如下 我有一个 Firestore 数据库 我每天都会将其下载到 Google Cloud Storage Bucket 作为备份 如果我想在本地下载它 我使用这个命令gsutil m cp r gs BUCKET PATH DESTI