从云功能强制执行 Firebase 数据库安全规则



在我的Firebase云函数中,我经常从Firebase数据库读取和写入数据。考虑到根据文档,函数以管理员权限运行。结果,我在数据库中的所有安全规则都被绕过了。考虑到我的一些函数本质上是 API 调用(HTTP 触发器等(,我想强制执行数据库规则。

有没有办法使用 Firebase 云函数中的非管理员帐号?

当前代码:

const functions     = require('firebase-functions');
const admin         = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
const ref = admin.database().ref();

我尝试使用"标准"firebase NPM 模块,但这不起作用,部署失败并出现一些内部错误 - 我想它不是为这种用途而设计的(文档似乎证实了这一点(。

如果您的客户端应用程序不需要允许客户端直接写入数据库,我建议您为所有授权用户将数据库安全规则设置为只读,然后在函数本身的逻辑中验证通过 HTTPS 函数写入的所有数据。 您将在表达有效内容方面具有更大的灵活性,并且在客户端发送无效数据的情况下,您将能够生成更有用的错误消息。 (安全规则不会强烈指示写入到底出了什么问题,只是说它失败了。

最新更新