일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Project
- UIDatePicker
- Sendbird
- Apple Developer Academy
- github
- Tuist
- Swift
- Delegate Pattern
- app intents
- swift concurrency
- spring
- watchkit
- cloud functions
- Coding Test
- coreml
- fcm
- Flutter
- Complication
- task.yield()
- UIStackView
- Firebase
- WWDC22
- ios
- SwiftUI
- tabman
- UITableView
- 코테
- widgetkit
- createml
- backend
- Today
- Total
azhy의 iOS 이야기
[Firebase] 예약 함수로 Cloud Function 호출 본문
2022년 4월 25일에 작성됨
현재 진행 중인 프로젝트에서 지정된 시간에 알림을 보내야 하는 기능이 필요했습니다.
그래서 지정된 시간에 함수를 실행할 수 있도록 예약 함수를 지원하는 cloud function을 사용했고 그 내용을 정리하려 합니다.
자세한 내용은 공식문서 를 참고해 주세요.
Firebase, cloud Functions 세팅
프로젝트에서 cloud functions을 사용하려면 firebase, functions 세팅이 필요합니다.
[Firebase] Cloud Functions 세팅 글을 참고하거나 구글링을 통해 세팅을 완료하고 다음으로 넘어가주세요.
함수 작성
코드는 공식문서 참고했습니다.
exports.scheduledFunction = functions.pubsub.schedule('every 5 minutes').onRun((context) => {
console.log('5분 지남')
return null
});
every 5 minutes - 함수 배포 시간 기준 5분 반복 실행
every 1 hours - 함수 배포 시간 기준 1시간 반복 실행
만약 'every 5 minutes' 함수를 13시 07분에 배포했으면 다음 함수는 13시 12분, 13시 17분 ... 이렇게 실행됩니다.
exports.scheduledFunctionCrontab = functions.region("asia-northeast3").pubsub.schedule('* * * * *').timeZone("Asia/Seoul").onRun((context) => {
console.log('1분 마다 실행');
return null;
});
Unix Crontab 및 App Engine 구문을 이용해서 특정 시간대를 선택할 수도 있습니다.
Crontab 페이지에서 자신이 원하는 시간 구문을 확인 및 테스트해보세요.
예시로 몇 개만 적어보면
* * * * * - 매분 실행
*/5 * * * * - 5분 기준으로 실행 (5분 10분 15분 20분 ...)
5,40 * * * * - 5분, 40분마다 실행
15 14 1 3 * - 3월 1일 14시 15분에 실행
timezone을 따로 설정 안 해주면 default가 America/Los_Angeles로 되어있어서 원하는 시간에 제대로 실행이 안될 수도 있으니 꼭 timezone 설정해주셔야 합니다. (추가로 region 설정을 안 해주니 실행이 안되어서 region도 수정..)
함수 배포
터미널에서 functions 폴더로 이동하고 firebase deploy --only "functions:functionName"를 입력하면 함수가 추가됩니다.
결과
'etc' 카테고리의 다른 글
잠시 찍먹해본 백엔드 공부 후기 (2) | 2024.11.14 |
---|---|
UX/UI 시작하기 : Figma 입문 (Inflearn Original) 후기 (0) | 2024.11.14 |
[WWDC22] Complications and widgets: Reloaded (0) | 2024.11.14 |
[Firebase] Cloud Functions 사용 (0) | 2024.11.06 |
[Firebase] Cloud Functions 세팅 (1) | 2024.11.06 |