Android 中的 Firebase 身份验证状态管理
Auth State Managment for Firebase in Android
我看到 Firebase 文档指出在登录过程中没有存储用户身份验证信息。但是,我有几个关于他们内部如何处理的问题。
Firebase Android SDK 是否将身份验证状态保存在内存中?
如果是,那么为此目的使用了什么设计或模式(单例、弱引用等)?
还是每次调用ref.getAuth()方法时都会执行一次对服务器的调用?
谢谢!
我假设您指的是描述 how to store such user data in your database 自己的文档部分。它指出:
When you authenticate a user, no profile or user state is stored in your Firebase database.
Firebase 身份验证是独立于 Firebase 数据库的服务,尽管它们集成得很好。
当您使用 Firebase 身份验证登录用户时,Firebase 客户端会将生成的令牌存储在应用的 SharedPreferences
中。这意味着它在应用程序重新启动后仍然存在(尽管它可能会在应用程序未处于活动状态时过期)。
身份验证状态也保存在内存中。所有 Firebase
个对象在幕后共享同一个会话,因此它们之间只有一个对象。这也意味着您在所有 Firebase
引用中只能有一个经过身份验证的用户。
调用 getAuth()
不会回调到 Firebase 服务器,这就是为什么它是少数几个同步的 Firebase API 调用之一。
我看到 Firebase 文档指出在登录过程中没有存储用户身份验证信息。但是,我有几个关于他们内部如何处理的问题。
Firebase Android SDK 是否将身份验证状态保存在内存中? 如果是,那么为此目的使用了什么设计或模式(单例、弱引用等)?
还是每次调用ref.getAuth()方法时都会执行一次对服务器的调用?
谢谢!
我假设您指的是描述 how to store such user data in your database 自己的文档部分。它指出:
When you authenticate a user, no profile or user state is stored in your Firebase database.
Firebase 身份验证是独立于 Firebase 数据库的服务,尽管它们集成得很好。
当您使用 Firebase 身份验证登录用户时,Firebase 客户端会将生成的令牌存储在应用的 SharedPreferences
中。这意味着它在应用程序重新启动后仍然存在(尽管它可能会在应用程序未处于活动状态时过期)。
身份验证状态也保存在内存中。所有 Firebase
个对象在幕后共享同一个会话,因此它们之间只有一个对象。这也意味着您在所有 Firebase
引用中只能有一个经过身份验证的用户。
调用 getAuth()
不会回调到 Firebase 服务器,这就是为什么它是少数几个同步的 Firebase API 调用之一。