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

Google Apps Script调用Firebase API出现语法错误求助

排查Google Sheets Apps Script调用Firebase API的语法错误

你遇到的语法问题主要来自两个和Apps Script语法规范相关的细节,毕竟它基于ES5标准,和一些现代编程语言的写法有差异:

1. 函数声明缺少function关键字

在Apps Script中,独立函数的声明必须使用function关键字,你写的loadInformation()是ES6类方法或箭头函数的写法,在这里并不适用。需要把函数声明改成:

function loadInformation() {
  // 函数内容...
}

2. 代码块括号不匹配(第20行错误的根源)

看你的代码结构,for循环结束后的}已经关闭了if (firebaseService.hasAccess())的代码块,但你紧接着又写了一个} else {——这个额外的}没有对应的起始{,直接导致了语法解析失败。

修正后的完整代码

function loadInformation(){
  //Set up service and check access
  var firebaseService = getFirebaseService();
  if (firebaseService.hasAccess()) {
    //Set up google sheet and header row
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var Sheet = ss.getSheetByName("<YOUR SHEETNAME>");
    Sheet.clearContents();
    Sheet.appendRow([<YOUR SHEET HEADERS>]); // 记得替换成实际表头数组,比如["ID", "Content"]
    //Set up reference
    var databaseURL = "https://xxxxxx.firebaseio.com/";
    var ref = "xxxxxx";
    var requestURL = databaseURL+ref+".json";
    //API Call
    var response = UrlFetchApp.fetch(requestURL, {
      headers: { Authorization: 'Bearer ' + firebaseService.getAccessToken() },
      method: 'get'
    });
    //Parse JSON
    var data = JSON.parse(response.getContentText());
    //Loop through JSON and append row
    for (item in data){
      var newRow = [item]; // 去掉末尾多余的逗号,避免数组出现undefined元素
      Sheet.appendRow(newRow);
    }
  } else { // 这里直接衔接else,删除了之前多余的}
    //Show authorization URL to user
    var authorizationUrl = firebaseService.getAuthorizationUrl();
    showDialog(authorizationUrl);
  }
}

额外小提示

  • 代码里的Sheet.appendRow([<YOUR SHEET HEADERS>])需要替换成实际的表头数组,比如["Item ID", "Description"],否则会引发后续运行错误。
  • var newRow = [item,];里的末尾逗号可以去掉,虽然JS允许这种写法,但可能会导致数组出现多余的undefined元素,影响表格内容展示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 08:31:08