我正在开发一个nextjs项目,对于用户身份验证,我使用firebase的signInWithPhoneNumber进行电话号码验证,成功验证后我得到一个firebase用户,它也有getIdToken方法来获取新令牌。我的问题是刷新页面后,我无法使用此方法来获取令牌,因为页面重新加载后 currentUser 用户变得未定义。
主要是即使在页面重新加载后我也想使用 firebase 用户的 getIdToken 方法。但我遇到这样的情况,页面重新加载是不可避免的。
我尝试将 firebase 用户存储在本地存储中,但用户被保存为字符串,即使在解析之后它也是一个没有 getIdToken 方法的对象。所以我不能使用它。
处理页面重新加载的正确方法是使用身份验证状态侦听器,如获取当前用户文档中的第一个代码片段所示。然后,您可以对用户调用
getIdToken
来获取他们当前的 ID 令牌。