据我所知,admin.initializeApp()
使用的默认帐户具有编辑者权限,这似乎忽略了所有验证和权限规则
我是不是遗漏了什么?在写入Firebase时,让默认服务帐户(即写入Firebase的服务器进程)完全绕过规则似乎是没有意义的。特别是因为这是示例和文档中记录的方式,并且规则模拟器没有给出这些规则将在某些帐户上强制执行()的指示
我的上下文是一个云函数,它将一些东西推送回Firebase,我希望能够用.validate
验证它
发布于 2018-06-02 23:21:17
正如您已经发现的,Firebase Admin SDK以管理权限运行,这绕过了所有安全规则。从documentation on getting started with the Firebase Admin SDK
管理员软件开发工具包允许您从特权环境中与Firebase交互,以执行以下操作:
具有完全管理员权限的
这里的逻辑是,使用Admin SDK的代码在受信任的环境中运行,在这种环境中,您可以相信代码就是您编写的代码,因此可以根据您的规范工作。
目前还不能在执行安全规则的同时使用Admin SDK。我建议你使用file a feature request。
请注意,您想要的是实时数据库的可能性,如Authenticate with limited privileges中所示。
对于Firestore,您可以在Cloud Identity and access Management控制台中控制一些访问权限。请参阅documentation on securing your data。
https://stackoverflow.com/questions/50658307
复制相似问题