프로그램/Firebase / / 2017. 9. 1. 16:34

[Cloud 함수]시작하기: 첫 번째 함수 작성 및 배포 - 실습

반응형

시작하기: 첫 번째 함수 작성 및 배포 - 실습


실습할 내용 :

https://firebase.google.com/docs/functions/get-started



아래 에서 생성한 프로젝트에서 연장해서 진행을 하겠습니다.

http://newtoynt.tistory.com/entry/FB%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C%ED%95%A8%EC%88%98%EC%A0%95%EB%A6%AC%EC%A4%91



프로젝트르 보시면 아래와 같은 구조로 되어 있습니다.




funcetions 폴더로 이동해 주세요.



functions/index.js 파일을 열어 아래 내용으로 수정 하세요.


// The Cloud Functions for Firebase SDK to create Cloud Functions and setup triggers.
const functions = require('firebase-functions');

// The Firebase Admin SDK to access the Firebase Realtime Database.
const admin = require('firebase-admin');
admin
.initializeApp(functions.config().firebase);

// Take the text parameter passed to this HTTP endpoint and insert it into the
// Realtime Database under the path /messages/:pushId/original
exports
.addMessage = functions.https.onRequest((req, res) => {
 
// Grab the text parameter.
 
const original = req.query.text;
 
// Push the new message into the Realtime Database using the Firebase Admin SDK.
  admin
.database().ref('/messages').push({original: original}).then(snapshot => {
   
// Redirect with 303 SEE OTHER to the URL of the pushed object in the Firebase console.
    res
.redirect(303, snapshot.ref);
 
});
});

// Listens for new messages added to /messages/:pushId/original and creates an
// uppercase version of the message to /messages/:pushId/uppercase
exports
.makeUppercase = functions.database.ref('/messages/{pushId}/original')
   
.onWrite(event => {
     
// Grab the current value of what was written to the Realtime Database.
     
const original = event.data.val();
      console
.log('Uppercasing', event.params.pushId, original);
     
const uppercase = original.toUpperCase();
     
// You must return a Promise when performing asynchronous tasks inside a Functions such as
     
// writing to the Firebase Realtime Database.
     
// Setting an "uppercase" sibling in the Realtime Database returns a Promise.
     
return event.data.ref.parent.child('uppercase').set(uppercase);
   
});



아래 명령문을 실행 하세요.

$ npm install





아래 그림을 참고.

아래 명령문을 실행 하세요.

$ firebase deploy --only fuctions 




문제가 없다면 정상 적으로 deploy 가 진행이 되고

Function URL이 보이게 됩니다.


나의 프로젝트 이름이 "fb_dbtest-45f87" 이라면 아래와 같은 주소로 접속을 하면 됩니다.

ex) https://us-central1-fb_dbtest-45f87.cloudfunctions.net/addMessage?text=uppercaseme


CLI의 addMessage() URL 출력을 사용하여 텍스트 쿼리 매개변수를 추가하고 브라우저에서 접속

URL 로 접속을 하게 되면 

함수가 실행되고 텍스트 문자열이 저장된 데이터베이스 위치에서 Firebase 콘솔로 브라우저를 리디렉션합니다. 

이 쓰기 이벤트는 문자열의 대문자 버전을 작성하는 makeUppercase()를 트리거합니다.


아래 위치로 이동을 해서 보면 Realtime Database 에 값이 추가 된것이 보입니다.













반응형

'프로그램 > Firebase' 카테고리의 다른 글

[Cloud 함수]Firebase용 Cloud 함수 환경 설정하기  (0) 2017.09.01
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유