Firebase Firstore云功能的安全规则

时间:2018-12-11 15:32:09

标签: firebase google-cloud-firestore google-cloud-functions firebase-security-rules

我目前正在设置一个dialogflow bot(用于常见问题和联系方式),并且正在使用Google云功能(nodejs)在firebase firestore中实现/数据存储。

很明显,我想拥有安全性规则,将对数据库的访问限制为仅dialogflow。谁能指出正确的方向,我将如何去做?

我发现的示例都是检查数据库中存储的内容,在我的情况下不起作用。?

2 个答案:

答案 0 :(得分:0)

仅当您拥有移动客户端(Android,iOS,Web)直接访问Firestore,Cloud Storage或Realtime Database中的某些数据时,安全规则才相关。它还适用于来自REST API的未经身份验证的访问。来自后端的任何其他访问,包括您可能为dialogflow实现挂钩编写的代码,均不受安全规则的约束。也就是说,通过admin SDK从后端访问这些资源会完全忽略安全规则。

如果您仅打算从后端访问这些产品,只需使您的安全规则禁止移动客户端的公共访问即可。

答案 1 :(得分:0)

我在安全规则中添加了选项来检查请求是否来自我用来验证对云功能中实时数据库的请求的用户,如下所示:

{
  "rules": {
    ".read": "auth != null && auth.token.email.matches(/^firebase-adminsdk-[xxx]@[project-name].iam.gserviceaccount.com$/)",
    ".write": "auth != null && auth.token.email.matches(/^firebase-adminsdk-[xxx]@[project-name].iam.gserviceaccount.com$/)"
  }
}

您可以使用规则测试器来验证来自其他用户的经过身份验证的请求是否会被拒绝。