您好我在我的应用中使用了AngularFire2,但我想知道在登录后是否有办法初始化模块。
我需要先执行登录,因为我使用登录提供的令牌下载Firebase配置。这就是我登录后需要初始化模块的原因。我可以使用服务吗?
答案 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非常重要。