登录后初始化AngularFire2

时间:2018-03-18 21:56:17

标签: angular angularfire2

您好我在我的应用中使用了AngularFire2,但我想知道在登录后是否有办法初始化模块。

我需要先执行登录,因为我使用登录提供的令牌下载Firebase配置。这就是我登录后需要初始化模块的原因。我可以使用服务吗?

2 个答案:

答案 0 :(得分:0)

目前没有好办法在使用不同的密钥启动后初始化AngularFireModule。

答案 1 :(得分:0)

我通过使用服务解决了这个问题。由于我在登录之前不需要firebase配置详细信息,因此我编写了一项服务并将其用作提供商。

所以这是我的 app.module

@NgModule({
  declarations: [...],
  imports: [...],
  providers: [
    ...,
    FirebaseInitService
  ]
})

这是我的 FirebaseInitService

import { FirebaseApp } from 'angularfire2/firebase.app.module';
import { AngularFireDatabase } from 'angularfire2/database/';
import firebase from '@firebase/app';

@Injectable()
export class FirebaseInitService {
  fb: FirebaseApp;
  db: AngularFireDatabase;

  constructor() {
    // Here is where I load firebase config for initializing it.
    var firebaseConfig = {
      apiKey: ...,
      ...
    };
    this.fb = firebase.initializeApp(firebaseConfig) as FirebaseApp;
    this.db = new AngularFireDatabase(this.fb);
  }

  // Connecting to Firebase database through this.db instance
  getData() {
    return this.db.something();
  }
}

由于可能会注意到需要使用Firebase和FirebaseApp来创建Firebase实例,因此将其投射到FirebaseApp以允许实例化AngularFireDatabase非常重要。