Swift:Firebase:除了我的应用程序之外,如何确保没有人可以访问我的数据库

我的Swift iOS应用程序仅使用Firebase匿名登录。 我担心我的Firebase数据库的安全性,因为显然任何人都可以访问或删除我的数据(通过浏览器等?)。

如何保护我的数据库,以便只有我的iOS应用程序可以访问它?

我原以为Firebase仪表板允许生成我可以嵌入我的应用程序的API密钥,但似乎并非如此。

您需要编写安全规则。

任何人都可以看到您的url,但安全规则是您决定有权访问哪些数据的方式。

这些规则就像对数据结构的注释一样,并指定必须满足哪些约束才能允许读取或写入。

假设您要保护数据库,以便只有经过身份validation的用户才能访问数据库。 这些是实时数据库的默认规则。

{ "rules": { ".read": "auth != null", ".write": "auth != null" } } 

auth变量存储当前经过身份validation的用户的服务器端值。 规则检查该变量是否具有值,因此包含登录用户。

我原以为Firebase仪表板允许生成我可以嵌入我的应用程序的API密钥,但似乎并非如此。

Firebase控制台将为您提供一个密钥 ,无论规则如何,都可以为您提供完全访问权限。 但如果你将它嵌入你的应用程序,那么它就不再安全了。 这就是您使用身份validation的原因,因为这会针对特定登录用户的密钥创建令牌。