프로그램 강좌/유니티 + 파이어베이스

파이어베이스(firebase) Cloud Functions #3

개양반 2017. 11. 22.
728x90

선행작업


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

댓글

💲 추천 글