从Google电子表格导出到Firebase,ERROR

时间:2017-05-28 18:06:29

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

我认为我的大多数错误都来自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);

}

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

要让Google表格能够写入您的Firebase实例,可能有几个原因无法写入,请查看:

  • 您是否授予了表单权限以访问您的Google帐户信息和文档
  • 您是否正确引用了firebase数据库网址
  • 你是否放松了对firebase的权限,为了测试你可以写true的用户,只是为了看看它是否适用于启动,然后使用完整的烫发设置
  • 您是否曾尝试使用Logger.log之类的调试工具来查看您在登录特定代码段时获得的内容?

我也能够录制我的流程的完整截屏视频,您可以在此处观看:https://www.youtube.com/watch?v=9SIAnjgKZZQ&feature=youtu.be

这里是我更改为使用dinamic标题标题的代码,用于我们数据的标签而没有它&#34;硬编码&#34;方式:)

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,kres

答案 2 :(得分:0)

如果您使用纯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);