如何解决Angular Fire 和 Firebase 模拟器 - 文档更新无效
将 Angular Fire 和 Firebase Emulators 更新到最新版本后,更新文档不再有效。仍然可以毫无问题地创建新文档,但 .update() 和 set() 不起作用。
我们的 Angular 应用程序有不同的环境。在本地环境(plain ng serve)中,应用程序应使用 Firebase Emulator Suite。如前所述,可以毫无问题地读取和创建文档。
app.module.ts (providers) 中的输出配置如下所示:`
// 火力基地
AngularFireModule.initializeApp(environment.firebaseConfig),AngularFireStorageModule,
// Translation
HttpClientModule,TranslocoRootModule,],bootstrap: [AppComponent],providers: [
{
provide: FIRESTORE_EMULATOR,useValue: !environment.emulator ? undefined : ['localhost',8080],},{
provide: FUNCTIONS_EMULATOR,5001],AuthGuard,NavigationService,
}) 导出类 AppModule {}`
在开发者控制台中,您可以看到写入请求是向本地主机发起的,但它一直处于挂起状态,并在 45 秒后被取消。
我们尝试了所有方法,但现在不知道该做什么了。请帮忙!谢谢!
解决方法
我能够通过将 firebase
降级到 firebase@7.12.0
来解决同样的问题:
npm i firebase@7.12.0
在 app.module.ts
中,我添加了:
import { SETTINGS } from '@angular/fire/firestore';
在导入中你需要初始化 AngularFireModule
// Firebase
AngularFireModule.initializeApp(environment.firebaseConfig),
在提供者中:
providers: [
...
{
provide: SETTINGS,useValue: !environment.emulator
? undefined
: { host: "localhost:8080",ssl: false },},
确保在您的环境文件中为本地开发设置了一个模拟器 (true
) 属性(在我的例子中:environment.emulator
)。我的 firebase 模拟器在端口 8080
上运行。
您也可以尝试删除模拟器缓存(包含 .jar
文件),因为如果您启动它们,它们会自动下载。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。