Posted at

GoogleAppsScript から Firebase の DB へアクセス

More than 1 year has passed since last update.

GoogleAppsScript(以下:GAS) から、Fireabse の Realtime Database へ書き込んだり読み込んだりする方法です。

が、かなり遅い(約15000件を登録するのに5分くらい)上に、何度か試していると、

アップロード帯域の使用量が多すぎるからブロックしました

とかエラー吐いて何もできなくなるので、用法用量を守って正しくお使いください。

(ちなみに、JavaScript で同じことをすると、数秒で終わりました・・・。)


ライブラリの追加

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

上記の URL を参考に(っていうかまんまこれですが)、スクリプトエディタからライブラリを追加します。

なんのライブラリかというと、GAS で Firebase を扱うためのライブラリです。

※URL先の説明ではバージョン9を選ぶように書いてますが、私が試したときは11でした。


実装

https://sites.google.com/site/scriptsexamples/new-connectors-to-google-services/firebase/tutorials/read-and-write-data-in-firebase-from-apps-script

上記のURLを参考に・・・(以下略)

コードを書くわけですが、Firebase のルールの設定で、認証を強制していたりする場合は、このままではうまくいかないです。

var base = FirebaseApp.getDatabaseByUrl(firebaseUrl);

この部分ですが、第2パラメータもあって、そこにシークレットキーを入れることで、認証が通ります。

(しかし、このシークレットキー自体が既に廃止されてると Firebase には書かれてるんですよねぇ・・。でも使える。)



ここの赤枠で囲った部分にカーソルを合わせると文字列を表示できるので、それをコピペして使用します。

var base = FirebaseApp.getDatabaseByUrl(firebaseUrl, secret);

ライブラリのコードを見る限り、シークレットを使用しない方法もありそうですが、試してないです(^^;

 

 

 

 

と、書いてみたはいいけど、結局サンプルの URL 貼り付けただけだなぁ・・・。

まぁ、自分が調べてたときは日本語の説明とかほぼ見つけられなかったので、これはこれでいいか。