如何只允许我的应用在没有登录的情况下访问 firebase?

Posted

技术标签:

【中文标题】如何只允许我的应用在没有登录的情况下访问 firebase?【英文标题】:How to allow only my app to access firebase without a login? 【发布时间】:2016-11-18 14:23:55 【问题描述】:

我将我的应用数据存储在 Firebase 上,这是我在 Firebase 上的第一个项目,事实证明这比我想象的要困难得多。我已经查看了official documentation,它说我们可以使用他们的电子邮件和密码登录用户,或者使用谷歌或 Facebook 等其他登录选项。但是我不希望用户登录我的应用程序,而只能读取和写入如果他们正在使用我的应用程序,将数据发送到 firebase。现在我正在为我的 firebase 使用公共规则,但是任何引用我的 firebase URL 的人都可以读取和写入数据库。我该如何克服这个问题?

提前致谢。

【问题讨论】:

使用匿名身份验证怎么样? firebase.google.com/docs/auth/android/anonymous-auth 您已经通过公开规则引入了重大威胁。克服这个问题的最佳方法是实施身份验证。期间。 @finki 匿名认证和公开认证有什么区别。 【参考方案1】:

Firebase 实时数据库不允许未经授权的用户访问

使 Firebase 数据库规则适用于读写并不是 (Chintan Soni) 所说的那样。

所以认证机制是最好的方法!

【讨论】:

firebase 是否允许应用在没有登录的情况下以读、写访问权限发布(身份验证) 你可以使用匿名登录 Firebase 数据库可以是公开的。一切都取决于身份验证规则。 我在我的 android 应用程序中实现了身份验证,我还在 firebase 中设置了规则,以保护我的 firebase 项目免受其他应用程序用户的影响。但它仍然无法正常工作。【参考方案2】:

如果您只想使用 firebase 数据库,您应该:

    从 gradle 下载 SDK https://firebase.google.com/docs/android/setup 在 firebase 控制台中创建项目并添加您的应用,下载 json 我将其放在您的 Android Studio 项目中 添加数据库依赖 'com.google.firebase:firebase-database:9.2.1' 在控制台中配置规则。您还可以禁用规则(仅推荐用于第一次测试: “规则”: “.read”:是的, “.write”:真

我还建议将 Android Studio 更新到包含 Firebase 集成的 2.1 或 2.2 版。

【讨论】:

即使用户没有任何应用程序密钥?【参考方案3】:

在 Firebase 控制台的身份验证选项卡下的 Sing-in Method 下启用 Anonymous sing-in provider 和 使用firebase anonymous authentication

【讨论】:

我在使用 firebase 匿名身份验证时遇到问题。你能帮我解决这个问题吗?【参考方案4】:

如下设置数据库规则:

    
  "rules": 
    ".read": true,
    ".write": true
  

【讨论】:

此方法仅用于测试目的。如果在生产中使用,这是一个很大的安全违规;任何人都可以读/写你的数据库。 这不应该在生产中使用。

以上是关于如何只允许我的应用在没有登录的情况下访问 firebase?的主要内容,如果未能解决你的问题,请参考以下文章

如何阻止特定用户访问您的应用程序?

dedecms--二次开发文章内容页未登录禁止访问和同一个帐号只允许一个ip登录

nginx禁止ip登录,只允许域名访问

如何在没有 Index.html 或.php 的情况下将我的 Web 应用程序文件运行到服务器?

jsf spring安全访问被拒绝认证登录

是否可以在没有密码的情况下使用 Spring SecurityConfiguration HttpSecurity 登录?