Cloud Functions

Jeon seong jin·2020년 2월 9일
1

Firebase

목록 보기
2/2

cloud Functions를 사용하면 클라이언트 코드를 업데이트하지 않고 Firebase 실시간 데이터베이스의 이벤트를 처리할 수 있습니다.

  • cloud Functions를 사용하면 전체 관리 권한으로 데이터베이스 작업을 실행, DataSnapshot,Admin SDK를 통해 Firebase 실시간 데이터베이스를 변경할 수 있습니다.

cloud Functions로 무엇을 할 수 있을까?

  • 타사 서비스 및 API와 통합
  • 실시간 데이터베이스 정리 및 유지관리 수행

흥미로운 상황이 발생할 때 사용자에게 알림 (arrow_upward)


1. 팔로어가 저장되는 실시간 데이터베이스 경로에 대한 쓰기로 인해 함수가 트리거 됩니다.
2. 함수에서 FCM을 통해 전송할 메시지를 작성합니다.
3. FCM에서 사용자의 기기로 알림 메시지를 전송합니다.

사용 사례

  • 뉴스레터를 구독하거나 구독 취소한 사용자에게 확인 이메일을 보낸다.
  • 가입을 완료한 사용자에게 환영 이메일을 보낸다.
  • 새 계정을 만든 사용자에게 sms 확인을 보낸다.

실시간 데이터 베이스 정리 및 유지관리 수행(arrow_upward)

cloud Functions로 데이터베이스 이벤트를 처리하면 사용자 행동에 대한 응답으로 실시간 데이터베이스를 수정하여 시스템을 정리하고 최신 상태로 유지.

Cloud Functions를 사용하면 클라이언트 코드를 업데이트하지 않고 firebase 실시간 db의 이벤트를 처리할 수 있다. DataSnapshot또는 Admin SDK를 통해 firebase 실시간 데이터베이스를 변경할 수 있다.

데이터베이스 함수 트리거

functions.database를 사용하여 실시간 데이터베이스 이벤트의 새 함수를 만듭니다. 함수가 트리거되는 시점을 제어하려면 이벤트 핸들러 중 하나를 지정하고 이벤트를 수신 대기할 데이터베이스 경로를 지정합니다.

이벤트 핸들러 설정

함수를 통해 데이터베이스 이벤트를 처리할 수 있으며, 얼마나 세부적으로 처리할 지에 따라 2가지 수준으로 나눈다. Cloud Functions는 실시간 데이터베이스에 대한 다음 이벤트 핸들러를 지원한다.
1. onWrite() - 실시간 데이터베이스에서 데이터가 생성,업데이트 또는 삭제될 때 트리거
2. onCreate() - 실시간 데이터베이스에서 새 데이터가 생성될 때 트리거
3. onUpdate() - 실시간 데이터베이스에서 데이터가 업데이트 될 때 트리거
4. onDelete() - 실시간 데이터베이스에서 데이터가 삭제 될 때 트리거

데이터베이스 인스턴스 및 경로 지정

함수가 트리거되는 시점과 위치를 제어하려면 ref(path)를 호출하여 경로를 지정하고 필요다면 instance('INSTANCE_NAME')로 데이터베이스 인스턴스를 지정한다. 인스턴스를 지정하지 않으면 파이어베이스 프로젝트의 기본 데이터베이스 인스턴스에 함수가 배포된다.

  • 기본 데이터베이스 인스턴스 : functions.database.ref('/foo/bar)
  • 이름이 'my-app-db-2'인 인스턴스 : functions.database.instance('my-app-db-2').ref('/foo/bar')
    이러한 메서드는 함수가 데이터베이스 인스턴스 내에 특정 경로에서 쓰기를 처리하도록 지시한다.

이벤트 데이터 처리

실시간 데이터베이스 이벤트를 처리할 때 반환되는 데이터 객체는 DataSnapshot이다. onWrite 또는 onUpdate 이벤트의 경우 첫 번째 매개변수는 각각 트리거 이벤트 전후의 데이터 상태를 나타내는 스냅샷 2개가 포함된 Change 객체이다. onCreate 및 onDelete 이벤트의 경우 반환되는 데이터 객체는 생성하거나 삭제한 데이터의 스냅샷이다.

profile
-기록일지

0개의 댓글