## 前提
- Firebase Authenticateでサインアップされたことを感知する
- Firebase Cloud Functionsを使う
- Firebaseを無料プランをやめる(Firebase Cloud Functionsを使用するため)
- Slackはチャネルに「Incoming WebHooks」を追加する
方法
Firebaseにログインし、Cloud Functionsを開く。
手順通りに firebase-toolsをインストールして、プロジェクトを作成
$ npm install -g firebase-tools
# プロジェクトを作成する
$ mkdir firebase-cloud-functions
$ cd firebase-cloud-functions
# Cloud Functions, Javascriptを選ぶ
$ firebase init
Cloud Functionsではは、functionsディレクトリ中がデプロイされるので、functionsディレクトリに移動
$ cd functions
必要なパッケージをインストール
# 一応最新版に
$ npm install firebase-functions@latest firebase-admin@latest --save
# slack通知のパッケージ
$ npm install @slack/webhook
functions/index.jsの中身を修正して、サインアップを監視して、Slack通知するようにする。
'use strict';
const functions = require('firebase-functions');
const admin = require('firebase-admin');
const { IncomingWebhook } = require('@slack/webhook');
admin.initializeApp();
const webhook = new IncomingWebhook(functions.config().slack.url);
# Firebase Authenticate のサインアップイベントを監視
exports.sendToSlack = functions.auth.user().onCreate(async (user) => {
await sendWebhookSlack();
return;
});
# Slack通知用メソッド。
async function sendWebhookSlack() {
await webhook.send({
text: '新たにユーザーが作成されました',
});
}
firebase-cloud-functionsの直下のディレクトリに移動して、デプロイする
$ cd ..
$ pwd
../../../firebase-cloud-functions
# deploy
$ firebase deploy
まとめ
Firebase Cloud Functionsには、Firebase上のイベントを感知するメソッドがたくさん準備されている。
このメソッドを使って色んなとこに監視を入れて、ユーザーの動きを追っていければ、プロダクトの改善点を見つかる気がする。
数増えたら監視外して、統計処理でユーザーの動きを追った方がいいと思うけど。。