【发布时间】:2019-06-09 22:51:20
【问题描述】:
我正在编写一个 Firebase 应用程序。 用户只能读取数据库,所有者可以在数据库中写入添加一些内容。
所有者需要一个管理桌面应用程序来上传数据库(存储和数据库)上的数据。 由于该应用程序是 C++ 应用程序,因此我将使用 python 与 Firebase 进行通信。
我想使用Pyrebase 或python-firebase,但不幸的是这些项目似乎不支持新的数据库 Firestore...
其余的 API 可以工作,但...仅适用于 Firestore 数据库部分...
我将内容添加到 Firestore 和存储的唯一方法是使用 admin sdk。
我知道 C++ 应用程序只能在所有者计算机上使用,但我担心获取服务帐户文件。
安全使用服务帐户文件的最佳方式是什么?
我想:
- 用密码加密文件,然后每次询问密码 c++ 需要使用 admin sdk 的时间(哪种技术是 更好吗?)
- 每次应用需要时下载服务帐户文件(但在 将其安全地存储在云端?)
【问题讨论】:
-
如果您使用谷歌云功能,则不需要生成服务密钥文件,如果您打算使用其他东西,任何秘密管理工具都可以解决问题
-
您的场景中的“所有者”是什么?因为如果他们是项目的开发人员,他们也可以通过 Firebase 控制台访问大部分资源。
-
@andresmijares 它将被用于桌面应用程序,所以不幸的是它不是谷歌云功能......你在谈论什么秘密管理工具?我很想知道。
-
@FrankvanPuffelen 所有者是我的客户。这个应用程序的目的是让他为一首歌设置一些设置(音频效果、歌词等),当他对它们没问题时,他可以将它们上传到 Firebase Firestore 和存储,所有用户都可以使用它新设置。由于他是一个非技术人员,因此他在 Firebase 控制台上下载 json 等可能会很复杂......所以我想将服务帐户嵌入到应用程序中(仅供他使用),但最好确定而不是哭泣我想避免任何泄漏问题。所以这就是为什么我想加密它或在需要时下载它。
-
如果你认为它有效,它确实有效,而且听起来你已经想通了
标签: firebase google-cloud-firestore google-cloud-storage firebase-admin