我将Firestore用作我们在Heroku上托管的API的MVP数据库。该API不使用Slack和Google等平台提供的OAuth之外的任何身份验证,并且我们也不使用Firebase的任何身份验证
我想改变我们的安全规则,以摆脱不安全感
allow read, write: if true;
,但由于大多数文档使用Firebase身份验证或集合可见性显示安全规则,因此我不确定如何在上下文中编写这些规则
所以,有几个问题:
非常感谢
答案 0 :(得分:2)
对于MVP,我认为allow read: if True
并不是真正的问题,具体取决于您提供的数据。但是,在写入时,您可以轻松地对传入的数据实施规则,例如:
allow write: if request.resource.data.securityKey === 'custom key shared between firebase and heroku'
一个更好的选择是使用auth模块firebase.auth().signInWithEmailAndPassword(email, password)
,将电子邮件和密码存储在heroku应用程序的env变量中,然后从那里进行认证。
答案 1 :(得分:1)
Admin SDK以特殊的管理特权访问数据库,并绕过安全规则。因此,如果仅通过Admin SDK访问数据库,则可以使用以下方法锁定数据库以供普通用户访问:
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if false;
}
}
}