【问题标题】:Angular Fire & Firebase Emulators - Update of document not workingAngular Fire 和 Firebase 模拟器 - 文档更新不起作用
【发布时间】:2021-08-28 12:33:21
【问题描述】:

将 Angular Fire 和 Firebase 模拟器更新到最新版本后,更新文档不再有效。仍然可以毫无问题地创建新文档,但是 .update() 和 set() 不起作用。

我们的 Angular 应用程序有不同的环境。在本地环境(plain ng serve)中,应用程序应使用 Firebase Emulator Suite。如前所述,可以毫无问题地读取和创建文档。

app.module.ts(提供程序)中的输出配置如下所示:`
// 火力基地 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 {}`

在开发者控制台中,你可以看到写请求是向本地主机发起的,但它一直处于挂起状态,并在 45 秒后被取消。

我们尝试了所有方法,但现在我们不知道该做什么了。请帮忙!谢谢!

【问题讨论】:

    标签: angular firebase google-cloud-firestore angularfire2 firebase-tools


    【解决方案1】:

    我可以通过将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 文件),因为如果您启动它们,它们会自动下载。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-27
      • 1970-01-01
      • 2020-10-11
      • 2017-06-08
      • 1970-01-01
      • 2020-01-01
      • 2017-09-19
      • 1970-01-01
      相关资源
      最近更新 更多