📌  相关文章
📜  找不到模块“@angular fire messing”或其相应的类型声明 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:10:04.661000             🧑  作者: Mango

找不到模块“@angular/fire/messaging”或其相应的类型声明 - Shell-Bash

当我们在使用 Angular 项目来进行 Firebase Cloud Messaging (FCM)推送通知的配置及使用时,可能会遇到以下错误:

ERROR in ./src/app/app.module.ts
Module not found: Error: Can't resolve '@angular/fire/messaging' in 'C:\Projects\my-app\src\app'

这说明我们的项目无法找到 @angular/fire/messaging 模块。

解决该问题的步骤如下:

  1. 检查依赖包是否正确安装

首先,确认有没有正确地安装了 @angular/fire 和 firebase 包。可以通过以下指令查看:

npm list | grep @angular/fire
npm list | grep firebase

如果没有正确地安装这些包,则应该进行安装:

npm install --save @angular/fire firebase
  1. 检查项目中是否添加了 AngularFireMessagingModule 模块

在 app.module.ts 中,必须添加 AngularFireMessagingModule 模块。请确保代码如下:

import { AngularFireMessagingModule } from '@angular/fire/messaging';

@NgModule({
  imports: [
    AngularFireMessagingModule,
    // other imports
  ],
  // other declarations
})
export class AppModule { }
  1. 确认 firebase 配置文件是否正确

Firebase 配置文件应该被正确地添加到了项目中,配置文件的位置应该是在 /src/environments/ 目录下,文件名为 environment.ts。如果没有创建这个文件,则应该创建该文件。

配置文件环境变量的样例:

export const environment = {
  production: false,
  firebase: {
    apiKey: '<your-key>',
    authDomain: '<your-project-authdomain>',
    databaseURL: '<your-database-URL>',
    projectId: '<your-project-id>',
    storageBucket: '<your-storage-bucket>',
    messagingSenderId: '<your-messaging-sender-id>',
    appId: '<your-app-id>',
    measurementId: '<your-measurement-id>'
  }
};

注意:apiKey、authDomain、databaseURL、projectId、storageBucket、messagingSenderId、appId、measurementId 都需要替换成你自己 Firebase 的应用程序信息。

  1. 确认 app.module.ts 是否正确导入环境变量

应将 Firebase 配置文件引入至 app.module.ts 中的环境变量中,请确保代码如下:

import { AngularFireModule } from '@angular/fire';
import { environment } from '../environments/environment';

@NgModule({
  imports: [
    AngularFireModule.initializeApp(environment.firebase),
    // other imports
  ],
  // other declarations
})
export class AppModule { }
  1. 启动项目

如果以上步骤都已经确认并且代码无报错,则项目应该已经可以正常启动了。

希望本篇文章可以帮助您解决找不到模块 @angular/fire/messaging 的问题。