angular - Angular Fire 和 Firebase 模拟器 - 文档更新不起作用
问题描述
将 Angular Fire 和 Firebase 模拟器更新到最新版本后,更新文档不再有效。仍然可以毫无问题地创建新文档,但是 .update() 和 set() 不起作用。
我们的 Angular 应用程序有不同的环境。在本地环境(plain ng serve)中,应用程序应使用 Firebase Emulator Suite。如前所述,可以毫无问题地阅读和创建文档。
app.module.ts (providers) 中的输出配置如下所示:`
// Firebase AngularFireModule.initializeApp(environment.firebaseConfig), AngularFireStorageModule,
// Translation
HttpClientModule,
TranslocoRootModule,
],
bootstrap: [AppComponent],
providers: [
{
provide: FIRESTORE_EMULATOR,
useValue: !environment.emulator ? undefined : ['localhost', 8080],
},
{
provide: FUNCTIONS_EMULATOR,
useValue: !environment.emulator ? undefined : ['localhost', 5001],
},
AuthGuard,
NavigationService,
],
}) 导出类 AppModule {}`
在开发者控制台中,您可以看到写入请求是向 localhost 发出的,但它一直处于挂起状态,并在 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 },
},
确保在环境文件中为本地开发设置了 emulator ( true
) 属性(在我的例子中:)environment.emulator
。我的 firebase 模拟器在 port 上运行8080
。
您还可以尝试删除模拟器缓存(包含.jar
文件),因为如果您启动它们,它们将自动下载。
推荐阅读
- android - 如何通过单击按钮根据微调器中选择的项目更改 URL?安卓
- python - 使用 Pandas 加载和读取 Excel 数据
- php - PHP执行两次的问题
- sql - 在sql中使用过滤器计算中位数
- sql - SQL 部分重复
- java - 创建 POST 请求,使用 Java RestAssured,返回状态码 422
- python - 处理字节三倍python
- python - manage.py 的问题:没有名为“django”的模块
- amazon-web-services - Terraform 循环查询
- excel - IF() 函数不适用于使用 VLOOKUP() 获取的数字