在聚合物中的多个组件中初始化Firebase应用程序是错误的吗?

时间:2016-05-25 14:58:18

标签: javascript html firebase polymer

我选择使用javascript而不是使用聚合反射,因为有更好的文档记录,我运行了note-app,但它没有提供我想要在Firebase中使用的全部功能。

我正在使用代码

var config = {
  apiKey: '<your-api-key>',
  authDomain: '<your-auth-domain>',
  databaseURL: '<your-database-url>',
  storageBucket: '<your-storage-bucket>'
};
firebase.initializeApp(config);

在负责登录用户的auth组件中,但我需要跟踪代表我的应用中页面的其他组件中的auth状态。我不知道是否有办法全局初始化应用程序,或者如果在每个页面中重复应用程序初始化是最佳选择。我现在正在做的是在每个可以通过路由初始化的页面的组件的就绪功能中初始化应用程序。

2 个答案:

答案 0 :(得分:1)

我认为聚合方式是创建一个公开firebase.initializeApp返回的应用程序的组件。

我必须在服务器端进行单元测试时使用的hacky方法是尝试获取应用程序,如果失败,我会初始化它:

var app;
try {
  app = firebase.app();
}
catch(e) {
  app = firebase.initializeApp(...);
}

答案 1 :(得分:0)

如果您正在使用打字稿,则可以使用单例模式将auth保留在类中。这样,只有一个对象共享。

for javascript - 使用typescript文件生成的js。