问题标签 [firebase-security]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
5149 浏览

firebase - 多对多使用 Firebase

假设我有两种对象用户和帐户。用户可以拥有多个帐户并与其他用户共享。所以 AccountA 可能对 User1 和 User2 可用。而 AccountB 仅对 User1 可用。所以 User1 有两个账户,User2 有一个账户。

构建这个的“firebase”方法是什么?

我最初的想法是每个用户都可以存储他们所属的一组帐户。

或者该帐户将有一组用户。

我想知道哪种方式可以让我轻松找到用户的帐户,以便当 Ted 登录时,我可以列出他所属的帐户,而无需拉下整个数据库。为了安全起见,无论如何我都不希望他机器上的所有数据。

问题 #1 安全规则会解决这个问题吗?我的意思是我打算设置我的安全规则,以便用户只能使用他们所属的帐户。我希望如果我查询“/accounts”,我只会取回用户可以访问的那些帐户......不是吗?

问题 #2 是否有查询项目列表的机制。像“/accounts/[1,2]”这样我拿回帐户“/accounts/1”和“/accounts/2”?

感谢您提供的任何信息。

0 投票
1 回答
656 浏览

firebase - 如何获取受保护的 Firebase 集合中的子项数量?

我为我网站的用户提供了一个受保护的 firebase 集合,只是一组用户对象。用户的权限规则允许经过身份验证的用户只能访问用户列表中的用户对象,而不能访问其他任何人。

我正在尝试设置一种简单的方法来使用此权限方案获取集合中所有用户的计数,以便我可以在我的网站上显示总用户计数,但是似乎没有办法获得计数所有用户都没有获得权限问题。

关于如何解决这个问题的任何想法?

我想我可以将计数存储在公开可读的 firebase 位置,每当添加/删除用户时,该位置就会递增和递减,但我宁愿不要两次存储数据并担心不匹配。

我想我的服务器上也可以有一个经过身份验证的观察者,它绕过权限要求并向客户端发送(通过写入公共位置的 firebase 或公开为 api)用户计数。

理想情况下,我现在希望拥有所有客户端,所以如果有一个简单的基于权限的解决方案,请告诉我。

谢谢!

0 投票
4 回答
20305 浏览

firebase - Firebase 以管理员身份验证

有没有一种方法可以让我以 Firebase 的管理员身份向 Firebase 进行身份验证,以便对其进行完全读/写访问(已经有保护部分内容的安全规则),或者我是否必须编写一个安全规则,以某种方式允许我访问完整的firebase,例如通过提供某个密码/密钥。

是否有标准或建议的方式来做到这一点?

0 投票
1 回答
3157 浏览

firebase - 如何限制注册到 Firebase 中的产品

如果我创建一个新产品,使用简单的身份验证,有一个“创建用户”API。如何限制它以便只有受邀的电子邮件(通过电子邮件或通过一次性密钥)可以注册?似乎不太容易符合规则,但我可能遗漏了一些东西。

0 投票
9 回答
29868 浏览

firebase - 有没有办法为 Firebase 用户创建和/或密码重置进行电子邮件确认?

问题说明了一切。在 Firebase 中,如何在用户创建帐户时确认电子邮件,或者就此而言,通过电子邮件重置密码。

我可以更广泛地问:有没有办法从 Firebase 发送电子邮件?例如通知等。这不是你通常会在客户端做的事情。

0 投票
1 回答
2454 浏览

firebase - 是否有 Firebase 安全规则只允许附加到列表?

我想创建一个简单的聊天应用程序,但我不希望任何用户能够编辑聊天条目列表 - 但我确实希望任何用户能够附加到它。这可能吗?

0 投票
1 回答
3757 浏览

firebase - 如何构建 Firebase 数据和用户之间共享数据的规则?

目前我有一个简单的待办事项应用程序,用户可以在其中创建一个列表,然后勾选完成的项目。数据的结构如下:'/acc_' + USER_ID +'/done' 和 '/acc_' + USER_ID +'/todo'。随着项目“完成”,它们被移动到完成列表中。

我希望用户能够与另一个经过身份验证的用户共享列表。

当前的规则如下所示,似乎有效。

我认为我需要做的是让每个拥有一系列批准的电子邮件地址的用户以某种方式将其与安全规则挂钩。

或者,我可以在根目录中创建一个列表,并且只有创建者和共享用户可以访问它。

有什么指导吗?

0 投票
1 回答
4001 浏览

firebase - 具有多个聊天室的应用的 Firebase 安全规则

我很难想象一个看起来像这样的应用程序的安全规则会是什么样子:

  • 一个带有多个聊天室的火力基地。
  • 主持人通过单独的 PHP 应用程序进行身份验证。
  • 版主只有修改自己聊天室的权限,他们可以读取、写入、更新和删除聊天室中的任何内容。
  • 客人到达并通过单独的 PHP 应用程序进行身份验证。
  • 来宾具有读写权限,但不能删除任何内容。

我现在的问题是:

  1. 是否可以配置规则来满足所有这些要求?还是有一些无法满足的要求?

  2. PHP 服务器必须在多大程度上与 Firebase 通信,以通知 Firebase 用户的存在?

0 投票
2 回答
26047 浏览

firebase - 如何防止未经授权访问我的 Firebase 实时数据库?

如何防止其他用户通过我的 Firebase URL 访问我的实时数据库?我必须做些什么才能将其仅保护到我的域?

0 投票
1 回答
231 浏览

firebase - 验证父级读取规则 - 过滤早于时间戳的消息

我正在编写一个示例聊天应用程序,但安全读取规则存在问题。我只希望用户在连接到聊天应用程序后可以阅读消息。为此,我在消息中添加了时间戳值。现在我只想要这个时间戳> =用户可以获得此消息的实际时间戳。但这不起作用,因为我无法从父级访问 $msgId (通过推送创建)。这是我的rules.json: