【问题标题】:Is there any way to don't store an anonymous user on Firebase Authentication?有什么方法可以不在 Firebase 身份验证中存储匿名用户?
【发布时间】:2020-06-25 03:08:30
【问题描述】:

数据存储在 Cloud Firestore 上并受 Cloud Firestore 安全规则保护。

这意味着您需要登录到应用程序A来管理数据。

可以根据数据库查询结果从另一个应用程序 B 读取(也列出)这些数据,因此用户无需登录。

要使数据从应用程序 B 中列出,我们需要在 Firebase 身份验证中允许匿名登录方法。

Documentation 声明:

这些临时匿名帐户可用于允许尚未注册您的应用的用户使用受安全规则保护的数据。

从那时起,Firebase 身份验证有很多匿名用途,并且没有计划将匿名帐户转换为永久帐户(如 here 所示)。

创建了一个代码来手动删除那些匿名用户。

基于此,有没有办法不将匿名用户存储在 Firebase 身份验证中,或者为该受信任的应用程序保留单个凭据以访问受保护的数据?

【问题讨论】:

  • 我真的不明白这个问题或你想要完成什么。
  • 您可以使用 Realtime-Databasee,因为您可以在那里设置自己的规则。
  • @DougStevenson 假设您有一个电子商务并且您想保护所有数据。这意味着要管理用户需要登录应用程序的数据。现在假设您有另一个应用程序,您希望在其中显示部分数据,而无需用户登录该应用程序。您可以在保护您的数据的同时从该应用程序匿名登录,但您将在 Firebase Auth 上拥有大量匿名记录,那么您如何才能摆脱它呢?同样,没有将匿名帐户转换为永久帐户的计划。

标签: firebase firebase-authentication


【解决方案1】:

如果您想删除任何用户帐户,包括普通用户和匿名用户,您必须发送至use the Firebase Admin SDK to delete the account。由您决定要删除哪些。您可以list all the users 并尝试从那里找出答案(如果您有很多用户,这可能会很耗时),或者查询存储其他用户帐户信息的数据库。我建议维护自己的数据库。

Firebase 不提供自动执行此操作的方法。您将不得不编写代码并定期运行它。

【讨论】:

  • 感谢您的评论。正如我所写,代码(使用 Admin SDK )已经完成,以便找出匿名用户并删除它们。问题是我们需要定期运行它。对于不需要用户登录以读取受保护数据同时又不希望像现在发生的那样拥有这些匿名用户的应用程序而言,拥有诸如受信任凭据之类的东西可能是一种解决方案将来考虑。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-01-17
  • 1970-01-01
  • 2020-12-15
  • 2018-12-22
  • 2016-10-18
  • 2016-12-22
  • 2016-06-08
相关资源
最近更新 更多