9
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

GoogleAppsScript から Firebase の DB へアクセス

Posted at

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 貼り付けただけだなぁ・・・。
まぁ、自分が調べてたときは日本語の説明とかほぼ見つけられなかったので、これはこれでいいか。

9
20
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?