선행작업
Node.js 와 npm 이 설치되어 있어야 합니다. [바로가기]
오늘 공부할 내용
실시간 데이터베이스 트리거에 대해 공부하겠습니다.
실시간 데이터의 값이 생성/삭제/변동 등을 감지해서 트리거가 작동되면 함수의 내용이 실행되는 내용입니다.
이벤트 핸들러는
onWrite()
- 실시간 데이터베이스에서 데이터가 생성, 폐기 또는 변경될 때 트리거됩니다.onCreate()
- 실시간 데이터베이스에서 새 데이터가 생성될 때 트리거됩니다.onUpdate()
- 실시간 데이터베이스에서 데이터가 업데이트될 때 트리거됩니다.onDelete()
- 실시간 데이터베이스에서 데이터가 삭제될 때 트리거됩니다.
등이 있습니다.
이벤트 데이터 처리
Index.js 에 아래 코드 내용을 입력합니다.
('/messages/{pushId}/original) 의 값이 생성되면 .onWrite() 가 감지해서 트리거가 실행됩니다.
CMD 창을 관리자로 실행한 다음 프로젝트 경로로 이동합니다.
그 뒤에 firebase deploy --only functions 를 입력합니다.
완료되면 파이어베이스의 Database 로 이동해서 아래와 같이 만들어 줍니다.
값이 입력되고 잠시 후에 original 의 값이 uppercase 에 대문자로 입력되어 데이터가 추가됩니다.
이전 값 읽기
previous 속성을 사용하면 이벤트가 발생하기 전에 데이터베이스에 저장되어 있던
데이터를 검사할 수 있습니다.
index.js 에 아래와 같이 코드를 입력하고 저장합니다.
event.data.previous.exists() 는 이벤트가 일어나기 전에 데이터의 존재여부를 체크합니다.
변경된 값 모니터링
changed() 속성으로 해당 경로에서 데이터가 변경되었는지 확인할 수 있습니다.
profilePictureSnapshot.changed() 로 프로파일의 이미지가 변경되었는지 체크합니다.
CloudFunction 을 통해서 실시간데이터의 하위 노드수를 제한할 수도 있습니다.
예로 게시판의 글이 너무 많아지면 가장 오래된 게시글을 삭제해서 저장용량을 관리할 수 있습니다.
또는 전투, 재화 등이 허용범위보다 커지면 해킹유저로 취급할 수도 있습니다.
그리고 실시간데이터베이스의 데이터를 Google Cloud BigQuery 로 복사도 할 수 있다고 합니다.
API 레퍼런스를 통해 어떤 함수들이 있는지 살펴보길 권장합니다.
https://firebase.google.com/docs/reference/functions/?hl=ko
'프로그램 강좌 > 유니티 + 파이어베이스' 카테고리의 다른 글
파이어베이스(firebase) Cloud Message (2) | 2017.11.23 |
---|---|
파이어베이스(firebase) Cloud Functions #4 (0) | 2017.11.22 |
파이어베이스(firebase) Cloud Functions #2 (0) | 2017.11.22 |
파이어베이스(firebase) Cloud Functions #1 (2) | 2017.11.22 |
댓글