当firebase-admin写入数据时,使用规则验证Firebase

时间:2018-06-02 15:14:36

标签: node.js firebase google-cloud-firestore firebase-admin

据我所知,admin.initializeApp()使用的默认帐户具有编辑权限,似乎忽略了所有验证和权限规则

我错过了什么吗?在写入Firebase时,将默认服务帐户(即写入Firebase的服务器进程)完全绕过规则似乎是不合情合的。特别是因为这样的样本和文件中记录的方式在文档中,规则模拟器没有表明这些规则将强制执行某些帐户

我的上下文是一个将功能推回Firebase的云功能,我希望能够使用.validate验证它

1 个答案:

答案 0 :(得分:2)

正如您已经发现Firebase Admin SDK以管理权限运行,这会绕过所有安全规则。来自documentation on getting started with the Firebase Admin SDK

  

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