cloud Functions를 사용하면 클라이언트 코드를 업데이트하지 않고 Firebase 실시간 데이터베이스의 이벤트를 처리할 수 있습니다.
DataSnapshot
,Admin SDK
를 통해 Firebase 실시간 데이터베이스를 변경할 수 있습니다.
1. 팔로어가 저장되는 실시간 데이터베이스 경로에 대한 쓰기로 인해 함수가 트리거 됩니다.
2. 함수에서 FCM을 통해 전송할 메시지를 작성합니다.
3. FCM에서 사용자의 기기로 알림 메시지를 전송합니다.
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)
실시간 데이터베이스 이벤트를 처리할 때 반환되는 데이터 객체는 DataSnapshot
이다. onWrite 또는 onUpdate 이벤트의 경우 첫 번째 매개변수는 각각 트리거 이벤트 전후의 데이터 상태를 나타내는 스냅샷 2개가 포함된 Change 객체이다. onCreate 및 onDelete 이벤트의 경우 반환되는 데이터 객체는 생성하거나 삭제한 데이터의 스냅샷이다.