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

时间:2017-05-13 16:57:49

标签: firebase firebase-realtime-database google-cloud-functions

在我的firebase云功能中,我经常从firebase数据库读取写入数据。考虑到根据documentation,函数以管理员权限运行。因此,数据库中的所有安全规则都是bypassed。考虑到我的一些函数本质上是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模块,但是没有工作,部署失败并出现一些内部错误 - 我想它不是为这种用途而设计的(documentation似乎证实了这一点。)

1 个答案:

答案 0 :(得分:0)

如果您的客户端应用程序不需要允许客户端直接编写数据库,我建议您将所有授权用户的数据库安全规则设置为只读,然后验证通过HTTPS函数写入的所有数据。功能本身。您可以更灵活地表达有效内容,如果客户端发送无效数据,您将能够生成更多有用的错误消息。 (安全规则并没有强烈表明写入究竟出了什么问题,只是失败了。)