Android版Firebase的Auth State Managment

时间:2016-04-19 21:25:40

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

我看到Firebase文档指出在登录过程中不存储用户身份验证信息。但是,我有一些关于他们如何在内部处理这个问题的问题。

  • Firebase Android SDK是否将身份验证状态保留在内存中? 如果是,那么为什么使用什么设计或模式(单身,弱引用等)?

  • 或者每次调用ref.getAuth()方法时是否执行对服务器的调用?

谢谢!

1 个答案:

答案 0 :(得分:1)

我假设您指的是自己描述how to store such user data in your database的文档部分。它声明:

  

对用户进行身份验证时,Firebase数据库中不会存储任何配置文件或用户状态。

Firebase身份验证是Firebase数据库的一项单独服务,即使它们可以很好地集成。

当您使用Firebase身份验证登录用户时,Firebase客户端会将生成的令牌存储在应用的SharedPreferences中。这意味着它可以在应用程序重新启动后继续存在(尽管它可能会在应用程序未处于活动状态时过期)。

身份验证状态也保留在内存中。所有Firebase个对象在幕后共享同一个会话,因此所有对象之间只有一个对象。这也意味着您只能在所有Firebase引用中拥有一个经过身份验证的用户。

呼叫getAuth()不会回拨Firebase服务器,这就是为什么它是同步的为数不多的Firebase API调用之一。