node.js - Firebase Firestore 不适用于 Angular 10 和 SSR 或预渲染

标签 node.js angular firebase grpc server-side-rendering

当我尝试使用 angular 10 构建新项目时,仅添加从 @angular/fire/firestore 模块导入 AngularFireModule 无法构建为预渲染或使用 build:ssr 命令。

 "dependencies": {
"@angular/animations": "~10.0.2",
"@angular/common": "~10.0.2",
"@angular/compiler": "~10.0.2",
"@angular/core": "~10.0.2",
"@angular/fire": "^6.0.2",
"@angular/forms": "~10.0.2",
"@angular/platform-browser": "~10.0.2",
"@angular/platform-browser-dynamic": "~10.0.2",
"@angular/platform-server": "~10.0.2",
"@angular/router": "~10.0.2",
"@nguniversal/express-engine": "^10.0.1",
"express": "^4.15.2",
"firebase": "^7.16.0",
"rxjs": "~6.5.5",
"tslib": "^2.0.0",
"zone.js": "~0.10.3"

在 app.module.ts 中

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';

import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';

import { AngularFireModule } from '@angular/fire';
import { AngularFirestoreModule } from '@angular/fire/firestore';
import { AngularFireStorageModule } from '@angular/fire/storage';
import { AngularFireAuthModule } from '@angular/fire/auth';
import { AboutComponent } from './about/about.component';
import { environment } from 'src/environments/environment';

@NgModule({
  declarations: [AppComponent, AboutComponent],
  imports: [
    BrowserModule.withServerTransition({ appId: 'serverApp' }),
    AppRoutingModule,
    AngularFireModule.initializeApp(environment.firebaseConfig),
    AngularFireAuthModule, 
    AngularFireStorageModule, 
    //this module failed to build
    //   AngularFirestoreModule, 
  ],
  providers: [],
  bootstrap: [AppComponent],
})

错误信息:

ERROR in ./node_modules/@grpc/grpc-js/build/src/channel-credentials.js Module not found: Error: Can't resolve 'google-auth-library' in 'C:........\monApp\node_modules@grpc\grpc-js\build\src'

好像 grpc 模块有问题, Angular 为 10...

最佳答案

我希望您在提出这个问题后找到了解决方案。

遇到同样的问题我做了什么?只需安装包 google-auth-library :

npm install google-auth-library --save

然后,应该就OK了。

PS:我不知道这个问题的根本原因,但我知道这个解决方法有效。

关于node.js - Firebase Firestore 不适用于 Angular 10 和 SSR 或预渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62929302/

相关文章:

javascript - 使用 IntelliJ 自动完成和 Node.js 时减少建议的 JavaScript 方法的数量?

mysql - NodeJS sequelize 自动生成模型并运行迁移 SQL 语法错误

javascript - Firestore复制功能,只复制1个文档

angular - 在Angular中,当复选框有更改事件时,如何停止TR单击事件的Propagation()?

angular - 如何使用 switchMap 而不是嵌套订阅?

使用 ngFor 提交的 Angular 2 ngModel

javascript - 如何使用 Node.js 向所有 android 设备发送 FCM 通知

node.js - Node 版本管理器不会更改 Ubuntu 中的 Node 版本。卡在系统 Node 版本上。如何使用 nvm 更改 Node 版本?

android - 如何在for循环内同步执行firebase函数?

java - 如何通过检索我上传到 firebase 数据库或存储的 Image、TextView 来设置 Activity 的 ImageView、Text View ?