【问题标题】:Populate firestore database with json data from firebase real time database使用来自 firebase 实时数据库的 json 数据填充 firestore 数据库
【发布时间】:2021-11-01 20:24:13
【问题描述】:
我正在做一个颤振项目,我需要用一些 JSON 数据填充我的 firestore 数据库。
但是,我意识到我可以将数据上传到 firebase 实时数据库,但不能将其传输到 firestore 。
我不想要实时数据库上的数据,而是 Firestore 上的数据
我想移动这个火库
进入这个 Firestore 数据库
**
如果有人知道我可以用我的
JSON 数据,我会很高兴的。
提前致谢
**
【问题讨论】:
标签:
flutter
firebase-realtime-database
google-cloud-firestore
【解决方案1】:
好的。正如@Frank Van Puffelen 提到的,没有直接的方法可以做到这一点。
但是,我发现如果我想从 firestore 转移到实时数据库,我需要先将实时数据库导出为 JSON,然后使用编程语言,例如js、python、Go等来更新我的firestore上的本地JSON。
遵守这些规则
-
将实时数据库数据以 JSON 格式导出到您的桌面
-
返回您的 firestore 项目并导航到右上角的服务帐户选项卡上的项目设置。
-
选择你想用来与你的数据库通信的语言我用python
-
选择生成私钥以下载它。创建一个文件夹并将其放在那里。
-
复制为您生成的代码:
导入 firebase_admin
from firebase_admin import credentials
from firebase_admin import firestore
cred = credentials.Certificate("path/to/serviceAccountKey.json")
firebase_admin.initialize_app(cred)
- 打开您的 python IDE 并粘贴代码。
- 将您的 python 脚本保存在与私钥文件相同的文件夹中
- 还不能直接使用,需要安装 python firebase 管理库
pip install firebase-admin
或访问https://pypi.org/project/firebase-admin/#files
- 安装成功,然后你就可以从python访问你的数据库了。
添加ff。代码
db = firestore.client()
ref_document = db.collection('new collection').document('new document')
ref_document .set({
"Name": "kojo",
"age": 19
})
- 现在运行您的代码并刷新您的 Firestore 数据库
【解决方案2】:
没有将数据从 Cloud Firestore 传输到实时数据库的内置方法,因为这两个数据库具有完全不同的数据模型。
如果您想自动传输数据,您必须编写一个脚本:
- 通过其 API 从Realtime Database 读取数据。
- 将 JSON 结构转换为一堆文档。
- 通过其 API 将数据写入Firestore。