我有一个使用 Firebase Admin SDK 的 Java 客户端(独立应用),因为每当值发生更改时我都需要从实时数据库中读取值。 (正在使用 ValueChange 监听器)。
目前,我将 service-account.json
添加到应用程序中。即使我使用此 service-account.json
将角色设置为 Viewer,我也可以使用 FirebaseAuth.createCustomTokenAsync
创建帐户,这是我不想要的。
有没有办法使实时数据库的服务帐户只读?
我知道我可以使用 setDatabaseAuthVariableOverride
来“限制”,但是如果有人从 app/jar 中提取我的 service-account.json
,他们就有能力这样做一切..
我没有使用node.js,只是使用Java和spring。而 js firebase 是不行的,因为即使没有网页我也需要接收更新。
最佳答案
切勿将服务帐户分发给最终用户。他们应该只去受信任的一方。
目前没有细粒度的方法来控制通过服务帐户对实时数据库的访问。访问控制通过 Firebase Authentication 执行客户端库,不适用于非 Android Java 客户端。
关于java - Firebase 有限服务帐户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48218045/