【问题标题】:Do I have to re-authenticate when using firebase database persistence and firebase anonymous auth?使用 firebase 数据库持久性和 firebase 匿名身份验证时是否必须重新进行身份验证?
【发布时间】:2021-04-11 04:44:17
【问题描述】:

我正在使用具有持久性的 firebase 匿名身份验证和 firebase 实时数据库。这个问题是关于我是否必须做任何事情来保持身份验证有效。

我从 firebase 人员在 stackoverflow 中的有用回复了解到,如果我们使用标准身份验证提供程序,firebase 会确保身份验证令牌不会过期。比如this commentthis answer

匿名身份验证令牌不会过期,并且会在您的应用运行之间持久保存到磁盘

也就是说,我是否可以得出以下结论:即使启用了数据库持久性,一旦用户通过身份验证,他/她仍将保持身份验证,直到跨应用和设备注销(或专门为此用户撤销身份验证)重启?

我不确定,因为实时数据库的Enabling offline capabilities 的文档提到了这一点

如果您的应用使用 Firebase 身份验证,Firebase 实时数据库客户端会在应用重新启动时保留用户的身份验证令牌。如果 auth 令牌在您的应用离线时过期,客户端会暂停写入操作,直到您的应用重新对用户进行身份验证,否则写入操作可能会因安全规则而失败。

这让我想知道我是否需要做任何事情来保持身份验证在应用程序和设备重启时处于活动状态。我对令牌本身不感兴趣。我只是想在退出之前保持身份验证有效。

【问题讨论】:

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


    【解决方案1】:

    也就是说,我是否可以得出结论,即使启用了数据库持久性,一旦用户通过身份验证,他/她仍然保持身份验证,直到在应用程序和设备重新启动时注销(或专门为此用户撤销身份验证)?

    数据库持久性与 Firebase 匿名身份验证无关。根据Firebase Realtime Database persistence的官方文档:

    当您启用磁盘持久性时,您的应用会将数据本地写入设备,以便您的应用可以在离线时保持其状态,即使用户或操作系统重新启动应用也是如此。

    并回答第二个问题:

    我从 Firebase 人员在 StackOverflow 中的有用回复了解到,如果我们使用标准身份验证提供程序,firebase 会确保身份验证令牌不会过期。

    是的,没错。我回答了一个类似的问题。请看下面的链接:

    【讨论】:

    • 只是为了确保我理解正确:一旦我登录用户,我不必在应用程序运行和设备重启时再次登录。因此,在我注销用户之前,对数据库的访问一直有效,因为 firebase 负责保持身份验证有效。那正确吗?当然,我知道身份验证不会在安装和缓存清除应用程序后继续存在。
    • 一旦我登录用户,我就不必在应用程序运行和设备重启时再次登录。,不需要,因此,在我注销用户之前,对数据库的访问一直有效,因为 firebase 负责保持身份验证有效。对吗? 没错,但不要忘记使用安全规则保护您的数据库。 我知道身份验证不会在安装和缓存清除应用程序后继续存在。 是的,这是完全正确的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-18
    • 1970-01-01
    • 2019-07-04
    • 1970-01-01
    • 1970-01-01
    • 2016-06-08
    相关资源
    最近更新 更多