본문 바로가기

포트폴리오 만들기/Vue, firebase 게시판 만들기

firebase Cloud Functions 활용하기

반응형

firebase funtions가 무엇인가?

https://firebase.google.com/docs/functions/use-cases?authuser=0

 

Cloud Functions로 무엇을 할 수 있나요?  |  Firebase

개발자는 Cloud Functions를 사용하여 Firebase 및 Google Cloud 이벤트에 액세스하고 확장 가능한 컴퓨팅 성능을 사용하여 이러한 이벤트에 대한 응답으로 코드를 실행할 수 있습니다. Firebase 앱은 고유한

firebase.google.com


Functions로 사용자 저장하기

새 비공개키를 다운받으면 json이 나오는데 이거는 보안 유지를 꼭꼭 해야한다. 왜냐면 firebase를 전부 통제할 수 있기때문에

새 비공개키의 내용을 복사하여  functions/key.json 파일을 생성한 뒤 붙여넣기 한다.


functions/index.js

//생략

//위치를 key.json으로 잡아준다.
var serviceAccount = require('./key.json')

//
const db = admin.database()

<!--  하나의 exports가 하나의 functions이다. -->
//계정이 생성될때 마다 여기 들어옴  
exports.createUser = functions.auth.user().onCreate(async (user) => {//user : 계정정보
 //user를 따로 빼낸다. user 정보에서 아래의 4개만 빼서 작업을 할 것이다.
  const { uid, email, displayName, photoURL } = user
  //user라고 하면 겹치니까 u라고 한다. uid는 키값으로 쓸것이다. 
  //user가 create 될때마다 아래의 4개 데이터를 넣어준다.
  const u = {
    email,
    displayName,
    photoURL,
    createdAt: new Date()
  }
  //uid는 키값으로 쓸것이다. 데이터 set은 u를 넣는다.
  db.ref('users').child(uid).set(u)
})

//계정이 삭제될때 마다 여기 들어옴
exports.deleteUser = functions.auth.user().onDelete(async (user) => {
  //user 정보중에 uid만 받는다.
  const { uid } = user
  db.ref('users').child(uid).remove()
})

 


deploy 하기

//이렇게 하면 functions가 전부 다되는것
cmd :>firebase deploy --only functions 

// 이렇게 하면 functions 중 createUser 만 되는 것. 지금은 처음이니까 다 해주자.
//나중에는 하나씩 해야한다.
cmd :>firebase deploy --only functions:createUser

Functions 두개가 준비가 되었다.


사이트에 가입하기

 

가입후 - 실시간 DB에 user 정보가 잘 저장되었다.


.gitignore 추가하기

반응형

'포트폴리오 만들기 > Vue, firebase 게시판 만들기' 카테고리의 다른 글

관리자 수정모드  (0) 2020.08.22
구글 로그인 해보기  (0) 2020.08.17
에러 처리하기  (0) 2020.08.13
제목 수정하기  (0) 2020.08.13
firebase realtime database 읽고 쓰기  (0) 2020.08.13