Javascript Firebase变量在浏览器刷新后变为null

Javascript Firebase变量在浏览器刷新后变为null,javascript,angular,typescript,firebase,firebase-authentication,Javascript,Angular,Typescript,Firebase,Firebase Authentication,我是angular 2的新手,我已经成功实现了Firebase身份验证,该验证基于用户设置的电子邮件和密码 用户登录后,Firebase变量将初始化,并可在整个应用程序中访问。但是,一旦用户进入应用程序并刷新页面,Firebase变量将变为null 我的问题是如何在刷新发生后保持Firebase状态。尝试了本地存储方法,但似乎不适合。SO中的大多数相关查询都是针对AngularJS的 有什么想法吗 编辑 Firebase在AppComponent.ts文件中初始化 firebase.init

我是angular 2的新手,我已经成功实现了Firebase身份验证,该验证基于用户设置的电子邮件和密码

用户登录后,Firebase变量将初始化,并可在整个应用程序中访问。但是,一旦用户进入应用程序并刷新页面,Firebase变量将变为null

我的问题是如何在刷新发生后保持Firebase状态。尝试了本地存储方法,但似乎不适合。SO中的大多数相关查询都是针对AngularJS的

有什么想法吗

编辑

Firebase在AppComponent.ts文件中初始化

  firebase.initializeApp({
  apiKey: 'A******E',
  authDomain: 'e******m',
  databaseURL: 'h*****m',
  projectId: 'e******r',
  storageBucket: 'e******m',
messagingSenderId: '****93***'
});
在我的登录服务中,我正在使用

  signInUser(email: string, password: string) {
return firebase.auth().signInWithEmailAndPassword(email, password);
}

一旦用户通过身份验证,他将被引导到名为“设置”的页面。在设置组件中,我希望获得经过身份验证的用户的电子邮件。当流程为userlogin-->设置页面时,firebase不为null,这一切都会顺利进行

当用户处于设置页面时,问题开始。点击F5刷新页面,此时Firebase对象变为空。

用户将存储从Firebase接收回的令牌。要在本地存储中设置,可以执行以下操作

localStorage.setItem('fireBaseToken', 'token');
然后在主app.component.ts中检查令牌是否存在,如果它确实将其添加到变量中,则重定向用户以再次登录

注意


默认情况下,Angular CLI应将“dom”添加到您的tsconfig.json中,否则将其添加到您自己的文件中。

您看过了吗?Firebase在localStorage中保持身份验证状态。页面刷新时不应将其清除。您为应用程序提供的服务环境是什么?正如bojeil所说,身份验证状态会自动持久化。因此,这可能是一个特定于您的情况的问题。在没有看到问题的情况下,我们所能做的就是推测原因。添加了一些代码,代码本身就非常简单。至于身份验证状态,如果Firebase保留身份验证状态,那么如何在不导致用户重新登录的情况下获取经过身份验证的用户详细信息。在Firebase文档中,我没有找到任何相关的方法。