Firebase idTokenChanges实际上何时被调用?

Firebase idTokenChanges实际上何时被调用?,firebase,flutter,firebase-authentication,Firebase,Flutter,Firebase Authentication,我正在我的Flitter应用程序中使用firebase_auth。从文档中,我了解到应该在FirebaseAuth实例的idToken过期之前自动调用idTokenChanges。这应该至少是一小时内的一次。因此,我尝试使用它来刷新idToken,稍后我将使用它来验证我的web API调用。但一个多小时后,我的监听器没有被调用,我也得到了后续调用的401状态。那么什么是使用idTokenChanges的正确位置呢?如果您想确保始终使用更新的令牌,只需在任何调用之前检索它,如: String to

我正在我的Flitter应用程序中使用firebase_auth。从文档中,我了解到应该在FirebaseAuth实例的idToken过期之前自动调用idTokenChanges。这应该至少是一小时内的一次。因此,我尝试使用它来刷新idToken,稍后我将使用它来验证我的web API调用。但一个多小时后,我的监听器没有被调用,我也得到了后续调用的401状态。那么什么是使用idTokenChanges的正确位置呢?

如果您想确保始终使用更新的令牌,只需在任何调用之前检索它,如:

String token = await FirebaseAuth.instance.currentUser.getIdToken();
这样,您可以确保始终拥有有效的令牌

除此之外,您应该收听
idTokenChanges

FirebaseAuth.instance.idTokenChanges().listen((user) => print(user.refreshToken));

但正如你所说,有时是不可靠的,可能不会触发。

好的,明白了。谢谢你知道我有什么办法可以在后端缩短idToken的到期时间,这样我就可以测试可靠性(我需要一些证据才能更改现有代码:)。我不确定这是否可行。好的。无论如何,谢谢你。