代码之家  ›  专栏  ›  技术社区  ›  Rigoberto Ramirez Cruz

登录后初始化AngularFire2

  •  0
  • Rigoberto Ramirez Cruz  · 技术社区  · 8 年前

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

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

    2 回复  |  直到 8 年前
        1
  •  0
  •   James Daniels    8 年前

    目前没有很好的方法在启动后使用不同的键初始化AngularFireModule。

        2
  •  0
  •   Rigoberto Ramirez Cruz    8 年前

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

    这是我的 应用程序。单元 :

    @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非常重要。

    推荐文章