2

エントリと呼ばれるノードの下にあるGoogle Firebaseに保存されているフォームエントリを取得し、Googleシートのスクリプトエディタを使用してGoogleシートに追加しようとしています。Google Appsスクリプトを使用してGoogle FirebaseからGoogleスプレッドに書き込む

FirebaseAppライブラリをGoogleシートスクリプトエディタに追加しました。私のコードは次のようになります:

function getAllData() { 
    var firebaseUrl = "https://myapp.firebaseio.com/"; 
    var secret = "pCOCwKCC582jpqdZe2EqPqnW3IAd3UyO9oB4uaEL2"; 
    var base = FirebaseApp.getDatabaseByUrl(firebaseUrl, secret); 
    var data = base.getData(); 
    Logger.log(data); 
} 

これを実行すると何も起こりません。何か案は?

次は、firebaseから返されたデータをGoogleシートに追加する必要があります。私はシートAPIを介してこれを行うには、このコードを使用していましたが、私はこれはどのようにGoogleスクリプトエディタで動作しないのですか?

function addEntries() { 
    gapi.client.sheets.spreadsheets.values.append({ 
     spreadsheetId: '10lyQpQtEA7euCfdU2isrqB_bgPuy-eSbW74h7oDP3ko', 
     range: "Sheet1!A1:D100", 
     majorDimension: "ROWS", 
     "values": [ 
      ["testa", "testb", "testc", "testd"] 
     ], 
     valueInputOption: 'USER_ENTERED' 
    }).then(function(response) { 

    }, function(response) { 
     appendPre('Error: ' + response.result.error.message); 
    }); 
    } 

答えて

4

私はこれが誰かを助けてくれることを願っています。

function writeSheets() { 
    var ss = SpreadsheetApp.openById("10lyQpQtEA7euCfdU2isrqB_bgPuy-eSbW74h7oDP3ko"); 
    var sheet = ss.getSheets()[0]; 
    var firebaseUrl = "https://myapp.firebaseio.com/"; 
    var secret = "pCOCwKCC582jpqdZe2EqPqnW3IAd3UyO9oB4uaEL2"; // get this from firebase project settings 
    var base = FirebaseApp.getDatabaseByUrl(firebaseUrl); 
    var data = base.getData(); 
    var keys = Object.keys(data.entries); 
    var sheetRow = []; 
    var entryKeys; 
    for (index in keys) { 
    sheetRow = []; 
    entryKeys = Object.keys(data.entries[keys[index]]) 
    for (i in entryKeys) { 
     sheetRow.push(data.entries[keys[index]][entryKeys[i]]); 
    } 
    //Logger.log(sheetRow); 
    sheet.appendRow(sheetRow);        
    } 
} 

注:このコードが動作するためには、あなたがこれらの指示に従ってスクリプトエディタでfirebaseappライブラリをインストールする必要があり、https://sites.google.com/site/scriptsexamples/new-connectors-to-google-services/firebase

+0

こんにちはを持っているスプレッドシートFへのラインrange = sheet.getRange("A"+num+":F"+num+"");

  • に私のデータのヘッダを書き込む前にしています!私はあなたの関数を実行しようとしているが、何とか動作していない: 'var keys = Object.keys(data.entries);'( 'undefined argument'を渡す) – Cesare

  • 5

    私は、最新Firebaseバージョンを使用しています。このスニペットコードは私のために働く。

    function getFacturasClientesExistentes() { 
    var firebaseUrl = "https://test.firebaseio.com/FacturasBLP/clienteExistente"; 
    var base = FirebaseApp.getDatabaseByUrl(firebaseUrl); 
    var data = base.getData(); 
    
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getSheetByName("Facturas Clientes Existentes"); 
    
    var num = 2; 
    range = sheet.getRange("A"+num+":F"+num+""); 
    for(var i in data) { 
        var values = [ 
        [ data[i].fecha, data[i].sucursal, data[i].cantidad, data[i].cliente, data[i].correo, data[i].estatus ] 
        ]; 
        range.setValues(values); 
        num += 1; 
        range = sheet.getRange("A"+num+":F"+num+""); 
        } 
    } 
    

    いくつかの注意:

    1. は、私は私のヘッダ
    関連する問題