개발자는 Cloud Functions를 사용하여 Firebase 및 Google Cloud 이벤트에 액세스하고 확장 가능한 컴퓨팅 성능을 사용하여 이러한 이벤트에 대한 응답으로 코드를 실행할 수 있습니다. Firebase 앱은 각자 독특한 방식으로 Cloud Functions를 사용하여 고유한 요구사항을 해결할 수 있지만, 일반적인 사용 사례는 다음과 같이 분류될 수 있습니다.
관심 있는 카테고리의 사용 사례와 예시를 각각 검토한 후 시작하기 튜토리얼을 진행하거나 인증 이벤트, 애널리틱스 이벤트 등에 대한 구체적 안내 가이드를 진행합니다.
흥미로운 상황이 발생할 때 사용자에게 알림
개발자는 Cloud Functions로 사용자 참여도를 유지하고 앱 관련 최신 정보를 제공할 수 있습니다. 예를 들어 사용자들이 서로의 앱 활동을 팔로우할 수 있는 앱이 있다고 가정해 보겠습니다. 사용자가 자신을 다른 사용자의 팔로어로 추가할 때마다 실시간 데이터베이스에 쓰기가 수행됩니다. 그리고 이 쓰기 이벤트는 Firebase 클라우드 메시징(FCM) 알림을 만드는 함수를 트리거하여 새 팔로어가 늘어났음을 해당 사용자에게 알릴 수 있습니다.
- 팔로어가 저장되는 실시간 데이터베이스의 경로 쓰기에서 함수가 트리거됩니다.
- 이 함수는 FCM을 통해 전송할 메시지를 작성합니다.
- FCM은 사용자 기기에 알림 메시지를 전송합니다.
실제로 작동하는 코드를 검토하려면 FCM 알림 보내기를 참조하세요.
흥미로운 알림의 기타 사용 사례
- 뉴스레터를 구독하거나 구독 취소한 사용자에게 확인 이메일을 보냅니다.
- 가입을 완료한 사용자에게 환영 이메일을 보냅니다.
- 새 계정을 만든 사용자에게 SMS 확인을 보냅니다.
데이터베이스 정리 및 유지보수 수행
Cloud Functions 데이터베이스 이벤트 처리를 통해 사용자 동작에 따라 실시간 데이터베이스 또는 Cloud Firestore를 수정하여 시스템을 최신 상태로 말끔하게 유지할 수 있습니다. 예를 들어 채팅 앱에서 쓰기 이벤트를 모니터링하여 사용자의 메시지에서 비속어나 욕설을 삭제할 수 있습니다. 작업 방식은 다음과 같습니다.
- 함수의 데이터베이스 이벤트 핸들러는 특정 경로의 쓰기 이벤트를 수신 대기하면서 모든 채팅 메시지의 텍스트를 포함하는 이벤트 데이터를 검색합니다.
- 함수에서 텍스트를 처리하여 부적절한 표현을 감지하고 삭제합니다.
- 함수에서 업데이트된 텍스트를 데이터베이스에 다시 씁니다.
실제로 작동하는 코드를 검토하려면 텍스트 관리 샘플을 참조하세요. 이 샘플에서는 채팅 메시지에서 부적절한 언어와 과도한 대문자 사용을 차단합니다.
데이터베이스 정리 및 유지보수의 기타 사용 사례
- 삭제된 사용자의 콘텐츠를 실시간 데이터베이스에서 삭제합니다.
- Firebase 데이터베이스의 하위 노드 수를 제한합니다.
- 실시간 데이터베이스 목록의 요소 개수를 추적합니다.
- 실시간 데이터베이스의 데이터를 Google Cloud BigQuery로 복사합니다.
- 텍스트를 그림 이모티콘으로 변환합니다.
- 데이터베이스 레코드의 계산된 메타데이터를 관리합니다.
앱이 아닌 클라우드에서 집중적인 작업 실행
Cloud Functions를 활용하면 CPU 또는 네트워킹 등의 리소스를 많이 사용하여 사용자 기기에서 실행하는 데 적합하지 않은 작업을 Google 클라우드로 오프로드할 수 있습니다. 예를 들어 이미지의 Cloud Storage 업로드를 수신 대기하는 함수를 작성하고 함수를 실행하는 인스턴스로 이미지를 다운로드하여 수정한 후 Cloud Storage에 다시 업로드할 수 있습니다. 이 과정에서 이미지 크기 조절, 자르기 또는 변환 등을 수행할 수 있습니다. 이 작업을 쉽게 수행할 수 있도록 Cloud Functions와 함께 사용할 ImageMagick 명령줄 도구가 제공됩니다.
- Cloud Storage에 이미지 파일이 업로드되면 함수가 트리거됩니다.
- 함수에서 이미지를 다운로드하고 썸네일 이미지를 만듭니다.
- 클라이언트 앱에서 썸네일 이미지를 찾아서 사용할 수 있도록 함수에서 해당 위치를 데이터베이스에 기록합니다.
- 함수에서 썸네일 이미지를 Cloud Storage에 새 위치로 다시 업로드합니다.
- 앱에서 썸네일 이미지 링크를 다운로드합니다.
이미지 처리 예시를 살펴보려면 Storage 이벤트 처리를 참조하세요.
Firebase 클라우드 일괄 작업의 기타 예
- 사용되지 않는 Firebase 계정을 주기적으로 삭제합니다.
- 업로드된 이미지를 자동으로 관리합니다.
- 사용자에게 대량으로 이메일을 보냅니다.
- 주기적으로 데이터를 집계하고 요약합니다.
- 대기 중인 작업의 큐를 처리합니다.
타사 서비스 및 API와 통합
Cloud Functions로 웹 API를 호출하고 외부에 노출하면 앱과 다른 서비스의 연동을 강화할 수 있습니다. 예를 들어 개발 공동작업에 사용되는 앱에서 작업 그룹 채팅방에 GitHub 커밋을 게시할 수 있습니다.
- 사용자가 GitHub 저장소로 커밋을 푸시합니다.
- GitHub webhook API를 통해 HTTPS 함수가 트리거됩니다.
- 함수에서 팀의 Slack 채널에 커밋 알림을 보냅니다.
서드 파티 서비스 및 API와 통합하는 다른 방법
- Google Cloud Vision API를 사용하여 업로드된 이미지를 분석하고 태그를 지정합니다.
- Google 번역을 사용하여 메시지를 번역합니다.
- LinkedIn 또는 Instagram과 같은 인증 제공업체를 통해 사용자를 로그인합니다.
- 실시간 데이터베이스 쓰기에 대한 웹훅으로 요청을 보냅니다.
- 실시간 데이터베이스 요소에 대한 전체 텍스트 검색을 지원합니다.
- 사용자의 결제를 처리합니다.
- 전화 통화 및 SMS 메시지의 자동 응답을 만듭니다.
- Google 어시스턴트를 사용하여 챗봇을 만듭니다.