【问题标题】:Exporting from Google Spreadsheet to Firebase, ERROR从 Google 电子表格导出到 Firebase,错误
【发布时间】:2017-05-28 18:06:28
【问题描述】:

我认为我的大部分错误来自 Firebase 的更新。但我快到了。

仍然喜欢 Firebase!

好的,我正在尝试将列演示电子表格导出到 Firebase(代码如下)。该错误似乎与 Firebase 参考有关。我知道如何在我的 Firebase 项目中修复它,但它与电子表格的脚本编辑器挂钩。

错误:ReferenceError:未定义“FirebaseApp”。 (第 13 行,文件 “出口”)

function writeDataToFirebase() {
  var ss = 

SpreadsheetApp.openById("1rV2_S2q5rcakOuHs2E1iLeKR2floRIozSytAt2iRXo8");
  var sheet = ss.getSheets()[0];
  var data = sheet.getDataRange().getValues();
  var dataToImport = {};
  for(var i = 1; i < data.length; i++) {
    var year = data[i][0];
    dataToImport[year] = {
    caption:data[i][1]
  };
}

 var firebaseUrl = "https://test-db-9833d.firebaseio.com/";

 // ERROR HERE ********************************************

 var base = FirebaseApp.getDatabaseByUrl(firebaseUrl);
 base.setData("", dataToImport);

}

【问题讨论】:

标签: javascript firebase firebase-realtime-database google-sheets


【解决方案1】:

以下是正确答案: 在脚本中有一个资源选项卡来添加一个库: 搜索: MYeP8ZEEt1ylVDxS7uyg9plDOcoke7-2l 并选择 11-static 然后重新运行你的脚本

文档: https://sites.google.com/site/scriptsexamples/new-connectors-to-google-services/firebase

【讨论】:

  • 添加一些适当的描述
【解决方案2】:

为了让 Google 表格能够写入您的 Firebase 实例,可能有几个原因导致您无法写入,请检查:

  • 您是否授予工作表访问您的 Google 帐户信息和文档的权限
  • 您是否正确引用了 firebase 数据库 url
  • 你是否放松了对 firebase 的权限,为了测试你可以写 true 的权限,只是看看这是否适用于开始,然后使用完整的 perm 设置
  • 您是否尝试过使用诸如Logger.log 之类的调试工具来查看您在特定代码部分的日志中得到了什么?

我还可以录制我的过程的完整截屏视频,您可以在这里观看:https://www.youtube.com/watch?v=9SIAnjgKZZQ&feature=youtu.be

这是我更改为使用 dinamic 标头标题作为我们数据标签的代码,而不是“硬编码”方式 :)

function onfire() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  var range = sheet.getDataRange();
  var values = range.getValues();
  var allvals = []; var row = {};
  for(var i = 1; i < values.length; i++) {
    for( var j = 0; j < values[i].length; j++ ){
      if( values[i][j] ) {
        row[ values[0][j].toString() ] = values[i][j] ;
      }
    }
    allvals.push( row ); // insert row
    row = {}; // blank template obj
  }
  var firebaseUrl = "https://my-android-app-demo1.firebaseio.com/sheet";
  var base = firebase.getDatabaseByUrl(firebaseUrl, sec);
  // Logger.log( allvals );
  base.setData("", allvals );
}

hth,克雷斯

【讨论】:

  • 酷,今晚去看看。一直在路上。
【解决方案3】:

如果您使用纯 JavaScript,请按如下方式初始化您的 FirebaseApp 类:

// Load Firebase library 
var firebaseScript = document.createElement('script');
firebaseScript.setAttribute('src', 
    'https://www.gstatic.com/firebasejs/4.1.1/firebase.js');
document.head.appendChild(firebaseScript);

// Initialize Firebase
// TODO: Replace with your project's customized code snippet
var config = {
    apiKey: "<API_KEY>",
    authDomain: "<PROJECT_ID>.firebaseapp.com",
    databaseURL: "https://<DATABASE_NAME>.firebaseio.com",
    storageBucket: "<BUCKET>.appspot.com",
    messagingSenderId: "<SENDER_ID>",
};

var app = firebase.initializeApp(config);

或者,如果你使用 Webpack 或 Browserify,你可以安装 firebase 包,然后初始化如下:

var firebase = require("firebase/app");
require("firebase/auth");
require("firebase/database");

var config = {
  // ...
};

var app = firebase.initializeApp(config);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-05
    • 1970-01-01
    • 1970-01-01
    • 2014-07-04
    • 1970-01-01
    • 1970-01-01
    • 2015-07-23
    • 1970-01-01
    相关资源
    最近更新 更多