如何只允许我的应用在没有登录的情况下访问 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登录
如何在没有 Index.html 或.php 的情况下将我的 Web 应用程序文件运行到服务器?
是否可以在没有密码的情况下使用 Spring SecurityConfiguration HttpSecurity 登录?