我看到Firebase文档指出在登录过程中不存储用户身份验证信息。但是,我有一些关于他们如何在内部处理这个问题的问题。
Firebase Android SDK是否将身份验证状态保留在内存中? 如果是,那么为什么使用什么设计或模式(单身,弱引用等)?
或者每次调用ref.getAuth()方法时是否执行对服务器的调用?
谢谢!
答案 0 :(得分:1)
我假设您指的是自己描述how to store such user data in your database的文档部分。它声明:
对用户进行身份验证时,Firebase数据库中不会存储任何配置文件或用户状态。
Firebase身份验证是Firebase数据库的一项单独服务,即使它们可以很好地集成。
当您使用Firebase身份验证登录用户时,Firebase客户端会将生成的令牌存储在应用的SharedPreferences
中。这意味着它可以在应用程序重新启动后继续存在(尽管它可能会在应用程序未处于活动状态时过期)。
身份验证状态也保留在内存中。所有Firebase
个对象在幕后共享同一个会话,因此所有对象之间只有一个对象。这也意味着您只能在所有Firebase
引用中拥有一个经过身份验证的用户。
呼叫getAuth()
不会回拨Firebase服务器,这就是为什么它是同步的为数不多的Firebase API调用之一。