Firebase RemoteConfig가 업데이트될 때 Slack에 알림 보내기 with Cloud Functions for Firebase
11229 단어 슬랙Firebasecloudfunctionsremoteconfig
하고 싶은 일
준비
사전 지식
이번에 사용하는 서비스
환경 구축
npm install -g firebase-tools
Firebase SDK for Cloud Functions 초기화
firebase login
firebase login
? Allow Firebase to collect anonymous CLI usage and error reporting information? Yes
Visit this URL on any device to log in:
https://accounts.google.com/o/oauth2/auth?==HOGEHOGE
Waiting for authentication...
✔ Success! Logged in as ログインしたメールアドレス
firebase init functions
TypeScript
를 선택 Enter
에서 OK myproject
+- .firebaserc # Hidden file that helps you quickly switch between
|
+- firebase.json # Describes properties for your project
|
+- functions/ # Directory containing all your functions code
|
+- package.json # npm package file describing your Cloud Functions code.
|
+- tsconfig.json # Config file containing compiler options.
|
+- tslint.json # Optional file containing rules for TypeScript linting.
|
+- src/ # Directory containing TypeScript source
| |
| +- index.ts # main source file for your Cloud Functions code
|
+- lib/
|
+- index.js # JavaScript output from TypeScript source.
|
+- index.js.map # Sourcemap file for TypeScript source.
편리한 npm 패키지 설치
cd functions
npm install typed-slack
npm install request-promise
npm install @types/request-promise
Firebase 결제 요금제 변경
Blaze
로 변경하십시오.🛠 구현
function
만들기 function
만들기 Slack의 WebhookURL을 firebase 환경 변수로 설정
firebase functions:config:set slack.webhook_url="https://hooks.slack.com/services/XXXXXX/XXXXXX/XXXXXX"
슬랙 게시물에 대한 기능 만들기
src/functions/slack.ts
import * as functions from 'firebase-functions';
import * as Slack from 'typed-slack'
export function postToSlack(sendText: string, username: string, icon_emoji: string, channel: string) {
const webhookURL = functions.config().slack.webhook_url
const slack = new Slack.IncomingWebhook(webhookURL)
slack.send({
text: sendText,
username: username,
icon_emoji: icon_emoji,
channel: channel
}).catch(e => {
console.error(e)
})
}
RemoteConfig 업데이트를 트리거하여 Slack에 사용자 지정 텍스트 게시
function
만들기src/functions/notifyUpdate.ts
import * as functions from 'firebase-functions';
import * as slack from './slack';
export const notifyUpdateRemoteConfigToSlack = functions.remoteConfig.onUpdate(versionMetaData => {
const currentVersion = versionMetaData.versionNumber;
const updatedUsername = versionMetaData.updateUser.name;
const updatedUserEmail = versionMetaData.updateUser.email;
const message = `RemoteConfig has updated! to v${currentVersion} by ${updatedUsername}(${updatedUserEmail})`;
slack.postToSlack(message, 'リモコン更新検知マン', ':female-police-officer::skin-tone-2:', '#notify');
})
index
src/index.ts
import { notifyUpdateRemoteConfigToSlack } from './functions/notifyUpdate';
export {
notifyUpdateRemoteConfigToSlack,
}
firebase deploy
에서 배포 ...
✔ functions: functions folder uploaded successfully
i functions: creating Node.js 6 function notifyUpdateRemoteConfigToSlack(us-central1)...
✔ functions[notifyUpdateRemoteConfigToSlack(us-central1)]: Successful create operation.
✔ Deploy complete!
...
이런 식으로 나오면 배포 성공
동작 확인
FAQ
Blaze
로 설정 했습니까?Spark
플랜 (기본값)의 경우 Firebase Cloud Functions는 인터넷 통신이 불가능하므로 업그레이드해야합니다.Reference
이 문제에 관하여(Firebase RemoteConfig가 업데이트될 때 Slack에 알림 보내기 with Cloud Functions for Firebase), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/k0uhashi/items/d4221d1d2e7a02f5c129텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)