You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google App Script中安装并使用Firebase SDK v9?

问题

我尝试在Google App Script(GAS)应用中使用Firebase SDK。官方文档要求执行npm install firebase命令安装,但该操作无法在GAS中完成。

于是我尝试以下代码:

// Import the functions you need from the SDKs you need
import { initializeApp } from "firebase/app";
import { getAnalytics } from "firebase/analytics";
// TODO: Add SDKs for Firebase products that you want to use
// https://firebase.google.com/docs/web/setup#available-libraries

// Your web app's Firebase configuration
// For Firebase JS SDK v7.20.0 and later, measurementId is optional
const firebaseConfig = {
  apiKey: "***",
  authDomain: "myapp.firebaseapp.com",
  databaseURL: "https://myapp-default-rtdb.europe-west1.firebasedatabase.app",
  projectId: "myappurl",
  storageBucket: "myappurl.appspot.com",
  messagingSenderId: "267227785525",
  appId: "***",
  measurementId: "G-K5CP51FRXR"
};

// Initialize Firebase
const app = initializeApp(firebaseConfig);
const analytics = getAnalytics(app);

但运行时出现错误:

SyntaxError: Cannot use import statement outside a module linea:

看起来是未将其声明为模块。我查找了相关教程,但仅找到针对Node.js的内容,没有关于Google App Script的指引。备注:我已安装FirebaseApp库。

请问如何实现需求?是否可以在GAS中使用Firebase SDK v9?


解决方案

1. 直接使用已安装的FirebaseApp库(推荐)

既然已安装FirebaseApp库,这是GAS对接Firebase最官方、稳定的方式,完全不需要用Firebase SDK v9的语法。示例代码如下:

// 初始化Firebase应用
const firebaseApp = FirebaseApp.initializeApp({
  apiKey: "***",
  authDomain: "myapp.firebaseapp.com",
  databaseURL: "https://myapp-default-rtdb.europe-west1.firebasedatabase.app",
  projectId: "myappurl",
  storageBucket: "myappurl.appspot.com",
  messagingSenderId: "267227785525",
  appId: "***"
});

// 示例:读取实时数据库数据
const db = firebaseApp.getDatabase();
const data = db.getData("/path/to/data");
console.log(data);

// 示例:写入实时数据库数据
db.setData("/path/to/data", { key: "value" });

这个库封装了Firebase常用功能(实时数据库、存储、认证等),完全适配GAS运行环境,无需处理模块导入问题。

2. 若非要使用Firebase SDK v9(不推荐)

GAS不支持ES模块的import语法,也无法直接安装npm包,但可以通过导入Firebase的UMD版本脚本来使用SDK v9,步骤如下:

  • 打开GAS编辑器,点击「资源」→「库」,移除已有的FirebaseApp库(避免冲突)
  • 点击「文件」→「新建」→「HTML文件」,命名为firebase-sdk,粘贴Firebase UMD版本的脚本内容(可从Firebase官网获取最新UMD链接的压缩代码)
  • 在主脚本中通过HtmlService加载该HTML文件引入SDK:
function loadFirebaseSDK() {
  const html = HtmlService.createHtmlOutputFromFile('firebase-sdk').getContent();
  // SDK已挂载到全局对象
  const { initializeApp } = firebase;
  
  const firebaseConfig = {
    // 你的配置信息
  };
  
  const app = initializeApp(firebaseConfig);
  // 注意:GAS运行在服务器端,无法使用Analytics(依赖浏览器环境)
}

⚠️ 限制说明:这种方法存在诸多局限,比如Firebase的Analytics、前端Auth流程等功能依赖浏览器环境,在GAS服务器端运行会失效,且维护成本远高于官方FirebaseApp库。

总结

不建议在GAS中使用Firebase SDK v9,直接用已安装的FirebaseApp库是最优解,它专门针对GAS环境设计,能覆盖绝大多数Firebase操作需求。

内容的提问来源于stack exchange,提问作者LeSmoox

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 06:55:22