使用 Firebase 限制未经身份验证的用户

restrict unauthenticated users with Firebase

我正在开发一个由 Firebase 支持的网络应用程序,它只允许已注册的用户访问其内容(使用 firebase 身份验证)。 我现在的目标是允许未经身份验证的用户查看应用程序内容但限制他们的使用(例如,未经身份验证的用户每天将能够查看 x 页,他们必须注册才能继续在应用程序上使用 activity)。 我正在考虑通过创建一个匿名用户类型并使用 Firestore 关注他的 activity 来实现这一点,但随后提出的问题是什么阻止了用户一遍又一遍地使用新的匿名用户登录。 我正在研究的另一种方法是使用会话 cookie 限制用户操作,但没有找到太多关于它如何与 firebase 一起工作以及是否可能的信息。

您对采用哪种方法有什么建议吗?

实施匿名帐户对我来说听起来是个不错的解决方案。由于您将拥有两种类型的用户,因此您可以非常简单地区分它们,并允许您的普通用户查看所有内容,而匿名用户只能查看受限内容。

为此,您必须在每次用户登录时检查它是否是匿名用户。如果它是匿名的,那么只允许他加载固定数量的页面。这可以在您的应用程序代码中真正简单地完成。

我已经用我的 #1 方法解决了这个问题 -

I was thinking to achieve this by making an anonymous user type and follow his activity with Firestore

我克服了我的顾虑

but then the question asked is what prevents the user from login in with a new anonymous user over and over again

转到 firebase console -> Authentication 然后在页面底部有高级设置对话框,我可以在其中管理 sign-up 配额。 这样,具有特定 IP 的用户将无法在短时间内一遍又一遍地重新创建匿名用户,从而滥用我的应用程序。