【问题标题】:Using Firebase as backend db for mobile app使用 Firebase 作为移动应用的后端数据库
【发布时间】:2017-01-09 23:55:34
【问题描述】:

仅将 Firebase 用作应用程序的数据库。

我想使用 Firebase 为所有用户存储全局数据。访问这些数据不需要用户身份验证。

因此,所有用户都可以访问相同的数据。例如,所有用户的“新闻文章”都是相同的。用户无需进行身份验证即可访问新闻。

如何设置 android 应用程序以安全地为所有用户访问 Firebase 数据?

通过“安全”,我的意思是我不想捆绑凭据以通过应用程序访问数据库。否则,任何人都可以访问数据并将其擦除或损坏。

根据快速调查,我发现可能有两种方法:

  1. Firebase REST API 使用 Firebase REST APIservice account token 访问 Firebase 数据。

  2. Firebase 身份验证 使用其中一种身份验证模式。例如使用email & password authcustom authcustom token。 我假设他们都要求我将秘密密码或令牌与应用程序捆绑在一起。

有没有人设计过具有这种用例的应用程序?任何指针将不胜感激。

【问题讨论】:

  • 简短回答:对于此用例“app-as-user”,无法避免捆绑用于访问 Firebase 实例的凭据。 (从接受的答案中查看 cmets)

标签: android firebase firebase-realtime-database firebase-authentication


【解决方案1】:

Firebase Authentication 不需要捆绑任何东西。您的用户提供他们自己的凭据。设备上的 Google Play 服务提供了安全性,只有使用您的签名密钥签名的应用才能收到授权用户对您通过安全规则决定的数据执行操作的令牌。

【讨论】:

  • 感谢道格提供的信息。对于这个用例,我将应用程序本身视为从 Firebase 访问数据并向最终用户展示的用户。因此,在这种情况下,由于我必须为此应用创建一个特殊用户才能访问数据,因此我需要捆绑这些凭据才能访问 Firebase 实例。什么是 REST API 的理想用例,什么时候有人会使用该选项?
  • 如果不将您的应用程序转变为用户(并因此在其中编码凭据),就无法保护对“仅您的应用程序”的访问。见stackoverflow.com/questions/18005984/…。要访问 Firebase 数据库,您需要允许公共读取访问 (".read": true) 或让用户登录(使用他们的帐户或 anonymously)。
  • 感谢您的确认。我希望可能有更好的方法。我知道 Firebase 不是为这个用例设计的。我将尝试先修补 REST API 并暂时接受 Doug 的答案,人们应该能够从 cmets 找到实际答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-13
  • 1970-01-01
  • 2021-06-29
  • 1970-01-01
  • 2016-11-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多