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

AppScript通过API连接Firebase报错:TypeError: file.blob is not a function

问题解决:TypeError: file.blob is not a function

错误原因

你遇到的TypeError: file.blob is not a function是因为Google Apps Script的DriveApp.File对象中,获取文件Blob的正确方法是getBlob(),而非你代码里写的blob()。

修复后的代码

const CREDENTIALS_FILE_ID = "Your File ID";
const PROJECT_ID = "Project ID";

function getServiceAccountKey() {
  var file = DriveApp.getFileById(CREDENTIALS_FILE_ID);
  // 修正:使用getBlob()替代blob(),同时添加return返回解析后的JSON
  return JSON.parse(file.getBlob().getDataAsString());
}

function testFunc(){
  console.log(getServiceAccountKey());
}

function getAccessToken() {
  var serviceAccount = getServiceAccountKey();
  var tokenUrl = "https://www.googleapis.com/oauth2/v4/token";
  var payload = {
    grant_type: "urn:ietf:params:oauth:grant-type:jwt-bearer",
    assertion: createJWT(serviceAccount),
  };

  var options = {
    method: "post",
    payload: payload,
  };

  var response = UrlFetchApp.fetch(tokenUrl, options);
  var token = JSON.parse(response.getContentText()).access_token;

  return token;
}

额外注意事项

  • 原getServiceAccountKey函数缺少return语句,即使修复Blob方法,testFunc也会输出undefined,因此必须添加return返回解析后的服务账号密钥JSON。
  • 确保脚本已获得访问Drive文件的权限,否则会触发权限错误。
  • 确认createJWT函数已正确实现,否则getAccessToken会因找不到该函数报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 04:32:42