カテゴリー: スニペット,
Google App Script でテキトーな時間帯に HTTPリクエストを送り、Firebase functions でバックアップと指定のデータ削除をしたりする俺用サンプルコード。
// httpリクエストで指定DBを削除
exports.dailyBatchJob = functions.https.onRequest((req, res) => {
return admin.database().ref('/test').remove()
.then(() => {
res.send('dailylog removed');
return 0;
})
.catch(error => {
res.send(error);
});
});
「/test」を削除するコードです。
deploy 後は Firebase functions のダッシュボードに関数が表示されます。リクエスト先のURL(この場合は末尾 dailyBatchJob)も見えるのでそこへアクセスすると、Firebase functions が実行されます。とりあえずブラウザでアクセスして反応を確かめておきましょう
function myFunction() {
var urlFetchOption = {
'method' : 'get',
'contentType' : 'application/json; charset=utf-8',
'muteHttpExceptions' : true
};
// Back Up
var response = UrlFetchApp.fetch('https://[xxxxxx-yyyyy].firebaseio.com/.json?format=export&auth=[KEY]', urlFetchOption);
var myFolder = DriveApp.getFolderById('[zzzzzzzzzzzzzzzzzz]');
var today = Utilities.formatDate( new Date(), 'Asia/Tokyo', 'yyyyMMddHHMMSS')
myFolder.createFile(today, response.getContentText(), MimeType.PLAIN_TEXT);
// Remove
var testRemove = UrlFetchApp.fetch('https://us-central1-[xxxxxx-yyyyy].cloudfunctions.net/dailyBatchJob', urlFetchOption);
}
※ バックアップ部分のコードの詳細はfirebase活用調査編③【databaseのバックアップ】 – エス・スリーBLOGをご覧ください。
バックアップ部分での [xxxxxx-yyyyy] はプロジェクトアドレスです。[KEY]はFirebaseのシークレットキー。[zzzzzzzzzzzzzzzzzz]は、バックアップ先であるグーグルドライブのフォルダIDです。バックアップしたいグーグルドライブのフォルダを表示した際のアドレス https://drive.google.com/drive/folders/{フォルダID} 部分になります
また、削除部分での 「https://us-central1-[xxxxxx-yyyyy].cloudfunctions.net/dailyBatchJob」 も同様で、「dailyBatchJob」部分は Firebase functions の関数名が割り当てられてるはずです。
Google Apps Script が完成したら、即時実行をクリックして動作を確かめてください。
バックアップが作成され、指定の Firebase データが削除されたら完了です。好きな時間に動作させましょう。
関連記事はまだありません