我最近升级到了最新版本的@angular/fire,一切都很好,但是现在我已经从compat库迁移出来了,现在我被这个问题卡住了。我在下面的代码中得到了这个错误:Firebase: No Firebase App '[DEFAULT]' has been created - call Firebase App.initializeApp()
。
// ...
import {getAuth, provideAuth} from '@angular/fire/auth';
import {getFirestore, provideFirestore} from '@angular/fire/firestore';
import {initializeApp, provideFirebaseApp} from '@angular/fire/app';
// ...
@NgModule({
// ...
providers: [
// ...
provideFirebaseApp(() => initializeApp(window['firebase_config'])),
provideFirestore(() => getFirestore()),
provideAuth(() => getAuth()),
// ...
],
// ...
})
export class ApModule {
// ...
}
字符串
下面是堆栈跟踪:
Error: Firebase: No Firebase App '[DEFAULT]' has been created - call Firebase App.initializeApp() (app/no-app).
at new ZoneAwareError (http://localhost:4200/vendor.js:65953:33)
at new FirebaseError (http://localhost:4200/apps_frontend_src_app_app_module_ts.js:166709:5)
at ErrorFactory.create (http://localhost:4200/apps_frontend_src_app_app_module_ts.js:166739:19)
at getApp (http://localhost:4200/apps_frontend_src_app_app_module_ts.js:122971:25)
at getAuth (http://localhost:4200/apps_frontend_src_app_app_module_ts.js:137360:77)
at http://localhost:4200/apps_frontend_src_app_app_module_ts.js:69140:44
at http://localhost:4200/apps_frontend_src_app_app_module_ts.js:69066:57
at ZoneDelegate.invoke (http://localhost:4200/polyfills.js:463:26)
at Zone.run (http://localhost:4200/polyfills.js:225:43)
at NgZone.runOutsideAngular (http://localhost:4200/vendor.js:34688:28)
at runOutsideAngular (http://localhost:4200/apps_frontend_src_app_app_module_ts.js:69066:33)
at http://localhost:4200/apps_frontend_src_app_app_module_ts.js:69140:17
at http://localhost:4200/apps_frontend_src_app_app_module_ts.js:1581:144
at http://localhost:4200/apps_frontend_src_app_app_module_ts.js:68430:47
at ZoneDelegate.invoke (http://localhost:4200/polyfills.js:463:26)
型
我完全搞不懂为什么我得到这个错误.任何帮助是非常感谢!
4条答案
按热度按时间2vuwiymt1#
显然,问题是
firebase
和@firebase/app
之间的版本不匹配。由于这种不匹配,firebase实际上被加载到内存中两次,但只示例化了一次。vaqhlq812#
是,执行ng-update - update所有列出的pkg
qij5mzcb3#
docs建议您放在提供程序中的代码应该在导入中。
字符串
n8ghc7c14#
嗯..好吧,我在我的项目中使用的是从8升级到9的版本,你要么注解掉了一些东西,要么你确实缺少了一些东西。让我分享一下我的模块:
字符串
所以我的初始化应用程序是在我的进口,而不是在我的供应商,我记得我有一些问题,然后经过一些挖掘和改变,我想出了上述和它为我工作.正如你可以看到我使用相当多的他们的服务.
从你发布的错误中,我猜问题是你的
initializeApp
没有进行初始化,所以试着把它移到导入中,并确保配置文件具有所有必需的属性。==更新==
请注意,我粘贴了我的项目导入,你可以忽略除
AngularFireModule
导入和提供程序之外的所有其他内容,因为你可能不会使用其他内容,我只是添加它们作为参考,因为它们可能对其他人有用。