我有一个使用Firebase Admin SDK的java客户端(独立应用),因为每当值发生变化时我都需要从Realtime数据库中读取值。 (正在使用ValueChange侦听器。)
目前我在应用中加入了service-account.json
。即使我将角色设置为Viewer,使用此service-account.json
,我也可以使用FirebaseAuth.createCustomTokenAsync
创建帐户,这是我不想要的。
有没有办法让Realtime-database只读取服务帐户?
我知道我可以使用setDatabaseAuthVariableOverride
来“限制”,但如果有人从app / jar中提取我的service-account.json
,他们就有能力做所有事情。
我没有使用node.js,只使用带有spring的Java。并且js firebase是no,因为即使没有网页我也需要接收更新。
答案 0 :(得分:0)
切勿将服务帐户分发给最终用户。他们只应该去信任的各方。
目前还没有细粒度的方法来控制通过服务帐户访问实时数据库。访问控制是通过Firebase Authentication客户端库执行的,这些客户端库不适用于非Android Java客户端。