我已经安装了带有npm install firebase like on documentation的FireBase SDK

package.json

{
  "main": "firebase.js",
  "type": "module",
  "dependencies": {
    "firebase": "^9.15.0"
  }
}

firebase.js

import { initializeApp } from 'firebase/app';

const firebaseConfig = {
  //... My apiKey ... etc
};

const app = initializeApp(firebaseConfig);

console.log('DEBUG APP',app);
//until here everything ok I can see the app object

文档的下一步是配置Web凭据:

import { getMessaging, getToken } from "firebase/messaging";
//here got error:
//SyntaxError: The requested module 'firebase/messaging' does not provide an export named 'getToken'
//I tried only  import { getMessaging } ... but also not provided

const messaging = getMessaging();
// Add the public key generated from the console here.
getToken(messaging, {vapidKey: "my_wap_public_key_here"});

我也try 过从网页客户端(如文档)

您是否使用ESM并希望使用浏览器模块?替换所有导入行以使用以下模式: 从‘https://www.gstatic.com/firebasejs/9.15.0/firebase-SERVICE.js’导入{} (其中,SERVICE是SDK名称,如Firebase-Firestore).

但如果我试着

import { initializeApp } from 'https://www.gstatic.com/firebasejs/9.15.0/firebase-app.js';

我收到错误Uncaught SyntaxError: Cannot use import statement outside a module

推荐答案

Firebase Web SDK仅用于前端/浏览器环境,而Node.js被认为是server environment.

FCM documentation...

Select 服务器选项

您需要决定一种与FCM服务器交互的方式:使用Firebase Admin SDK或原始协议.由于Firebase Admin SDK对流行编程语言的支持,以及处理身份验证和授权的方便方法,因此推荐使用Firebase Admin SDK.

您可以在此处找到Node.js Admin SDK文档

Node.js相关问答推荐

使用xml-crypto时出现NodeJS XPath解析错误

Node.js PNG缓冲区获取未知图像格式错误

模块';"; node :流程&没有导出的成员';dlopen';

后端如何保护数据不被用户提取其他用户的数据?

React原生Nodejs兼容性问题

Playwright - 无法在 img 标签中使用 file:// 访问本地文件

在 Docker 容器内创建一个 cron 作业(job)来执行 run.js 文件中的函数

有没有办法判断 UUID 是否是使用 node.js 中的特定命名空间生成的?

处理 UTC 日期和future

从数据库读取数据并将其作为可下载的 zip 文件发送

为当前目录提供服务的简单文件服务器

Base64 编码一个 javascript 对象

Node.js 支持 =>(箭头函数)

编写可维护的事件驱动代码

使用 NodeJS 将新对象附加到 DynamoDB 中的 JSON 数组

如何在 MongoDB 中查询引用的对象?

遍历 NodeJS 中的一系列日期

Node.js 与 .net 中的异步/等待

Puppeteer 等待所有图像加载然后截图

Firestore:多个条件 where 子句