【问题标题】:Can persistence be checked to exist?可以检查持久性是否存在?
【发布时间】:2017-08-12 17:45:51
【问题描述】:
Firebase 使用户登录保持不变。但是,用户在页面加载时不可用。应用程序必须收听onAuthStateChanged 才能知道用户何时可用。等待时间很短,但并非微不足道。
有什么方法可以检测用户是否可以在用户可用之前保留?这将有助于适当地调整用户体验。
查看localStorage,数据似乎可用,因此可以想象一个简单的方法可以返回true 或false,无论localStorage 中是否有任何持久性数据可用。但是,我在文档中找不到这样的方法。
【问题讨论】:
标签:
javascript
firebase
firebase-authentication
【解决方案1】:
我编写了一个简单的实用程序函数来检测并返回 localStorage 中看似相关的项目。不过,显然,官方方法更可取。
// Title: Get Persistent User
// Description: Returns the persistent user data recorded by Firebase.
export function getPersistentUser()
{
const expression = /^firebase:authUser/;
const keys = Object.keys(localStorage);
for (let index = 0; index < keys.length; index++)
{
const key = keys[index];
if (expression.test(key))
{
const item = localStorage.getItem(key);
return item;
};
};
return null;
};