栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

加载页面时,Firebase auth.currentUser为null,在页面加载几毫秒后调用authstatechange时,用户加载

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

加载页面时,Firebase auth.currentUser为null,在页面加载几毫秒后调用authstatechange时,用户加载

页面加载后,Firebase将从本地存储中还原用户的凭据,并与服务器一起检查它们是否仍然有效。由于这是对服务器的调用,因此可能要花费一些时间并异步发生。这是正常的原因

firebase.auth().currentUser
null
,直到
onAuthStateChanged
火灾。

你的问题是,有多种原因

firebase.auth().currentUser
可能是
null

  1. firebase.auth().currentUser
    这是
    null
    因为客户端刚刚加载,并且仍在与服务器一起检查凭据。
  2. firebase.auth().currentUser
    这是
    null
    因为客户端针对服务器检查了凭据,并且客户端未登录。
  3. firebase.auth().currentUser
    null
    因为用户从未登录过,所以没有要检查的凭据。

您要在情况2和3而不是情况1下导航。

典型的解决方案是在第一次

onAuthStateChanged
触发之前不处理导航。届时,您可以确定已针对服务器检查了凭据,或者没有要检查的凭据,在这两种情况下,您都需要导航至登录页面。


加快速度的另一种方法是,当用户首次登录时,自己将一个小令牌存储在本地存储中,然后在应用加载时读取该令牌。如果存在令牌,则可以区分情况1和情况3,并用它稍早导航到正确的页面。

有关此示例,请参见有关架构移动Web应用程序的 I / O讨论。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/448899.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号