您好,我在我的应用程序中使用 AngularFire2,但我想知道是否有办法在登录后初始化模块。
我需要先执行登录,因为我使用登录提供的令牌下载 Firebase 配置。这就是为什么我需要在登录后初始化模块。我可以使用服务吗?
我通过使用服务解决了它。由于在登录之前我不需要 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 非常重要。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句