所以我试图了解Cloud Firestore的安全性以及在我的情况下这将如何运作。通过阅读文档,我看到客户端库使用Firestore规则进行保护,服务器库使用IAM进行保护。
我想要实现的目标非常简单。我希望任何人都可以使用我的iOS应用程序来读取我的数据库(只有那些人)。我真的不希望他们必须使用用户名和密码或OAuth登录,除非这是必要的。在这种情况下,我不清楚是否需要匿名身份验证。
我只希望内部管理员用户能够写入数据库,例如通过一些应用程序(本机或Web),我将在以后构建。
什么安全设置是合适的?
如果您希望每个人都通过移动应用程序无条件地读取数据库中的所有内容,这是您需要的唯一规则:
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read: if true;
}
}
}
管理员SDK和所有其他服务器SDK总是完全绕过安全规则,因此您不需要在那里做任何特殊的事情。您使用的服务帐户只需要具有该项目的编辑器访问权限。