【问题标题】:Allow only request from a specific domain to read and write data firebase仅允许来自特定域的请求来读取和写入数据 Firebase
【发布时间】:2018-02-01 15:52:47
【问题描述】:

我最近开始使用 firebase 来存储数据,并将我的规则暂时设为公开。我不想添加用户身份验证,而是想知道是否可以设置 firebase 规则,以便只有我的域可以读取和写入数据。

【问题讨论】:

标签: firebase firebase-realtime-database


【解决方案1】:

限制某些用户访问实时数据库的唯一方法是通过 Firebase 身份验证。无法限制对某些区域、IP 或其他分类最终用户的方式的访问。

【讨论】:

  • 这很不幸。对于纯数据只读网站,仅具有来自该域的读取访问权限就完全有意义。
  • 2 1/2 年后仍然如此吗?
  • @SpaceNinja 不太可能改变。
【解决方案2】:

我相信您可以使用与您的 Firebase 帐号关联的服务帐号来完成此操作。您可以手动创建白名单 URL 允许使用您的 API 密钥。诀窍在于它可以在 Google Cloud Platform 中找到,而不是在 Firebase 控制台中。但是,Firebase 控制台中有一个漂亮的链接,可以将您带到您需要去的地方。

(另外,去哪里的直接链接是https://console.cloud.google.com/apis/credentials,但请确保您登录到下面第二步中“用户和权限”选项卡上列出的“所有者”或“编辑”帐户。)

步骤如下:

  1. 登录您的 Firebase 控制台,然后转到 Firebase 控制台左上方“项目概述”旁边的齿轮图标。

  2. 然后导航到“用户和权限”选项卡

  3. 然后点击屏幕上主表下方的蓝色小链接,上面写着“高级权限设置”。

  4. 它应该会将您带到 Google Cloud Console。 (确保您已登录到刚才从 Firebase 控制台查看的“用户和权限”选项卡中列出的“所有者”或“编辑者”帐户。)点击 Google Cloud Console 左上角的菜单,然后转到“API 和服务”

  5. 然后点击子菜单项“凭据”

  6. 单击您要限制的所需 API 密钥。

  7. 然后通过单击“应用程序限制”下的单选按钮“HTTP Referers”来设置您要允许访问的网站,添加一个项目,输入网址,然后点击完成以保存更改。

希望这能满足您的需求! :)

【讨论】:

  • 挑战在于,API 请求是在开发过程中提出的,将 localhost 添加到列表中是毫无意义的 IMO - 因为(假设它甚至是一件事)将有效地让每个人都可以访问......
  • @kawerewagaba 您可以通过修改/etc/hosts 文件来创建localhost 别名,并将该值列入白名单。由于只供本地使用,因此将不为世人所知。
猜你喜欢
  • 1970-01-01
  • 2014-01-06
  • 1970-01-01
  • 2020-12-29
  • 1970-01-01
  • 2022-06-15
  • 1970-01-01
  • 1970-01-01
  • 2018-08-24
相关资源
最近更新 更多