我们何时将FirebaseUser.getToken(Boolean forcerefresh)设置为true?

Bik*_*ash 13 android firebase firebase-authentication

我的Firebase客户端应用程序与自定义后端服务器通信,因此我需要将ID每个HTTPS请求的令牌发送到我的服务器.从参考,

Should only be set to true if the token is invalidated out of band
Run Code Online (Sandbox Code Playgroud)
  1. 我什么时候应该将forcerefresh布尔值设置为true
  2. forcerefresh在我的自定义服务器的每个HTTPS请求期间获取令牌(使用为false)是否可以.(当它作为任务返回时,我应该将它存储在我的本地缓存中,这样我就不必添加任何任务侦听器并且可以在同一个线程中处理请求)

编辑: 现在谷歌提供新的API,如果它已过期将自动刷新令牌.

getIdToken(forceRefresh) returns firebase.Promise containing string
Run Code Online (Sandbox Code Playgroud)

来自Google文档

如果当前令牌尚未过期,则返回当前令牌,否则将刷新令牌并返回新令牌

boj*_*eil 8

通常,将forceRefresh设置为false.这是推荐的行为.但是,这取决于你在做什么.您可能希望确保令牌始终是最新的并且可以同步使用.为此,您必须在令牌过期前刷新几分钟.如果你调用getToken(false),你将获得即将到期的缓存令牌,这是不希望的.在这种情况下,您强制刷新并更新令牌.通过这样做,您可以确保始终同步拥有未到期的令牌.

  • 我怎么知道我的令牌即将到期。我是否需要添加代码来检查它的到期时间以及它是否即将到期,而不是调用 getToken(true)。 (2认同)

小智 5

将其设置为 false 除非您想强制刷新它。如果将其设置为 false,Firebase 会获取缓存的令牌(如果尚未过期)或刷新令牌并返回它(如果已过期)。

https://firebase.google.com/docs/reference/js/firebase.User#getToken