본문 바로가기

💻 개발IT/Infra

[Firebase] Cloud Function 세팅해보자

프로젝트 업그레이드

파이어베이스 콘솔에서 

Function 메뉴로 들어간 뒤 프로젝트 업그레이드를 진행한다.

 

설치

터미널에서 Firebase CLI인 firebase-tools을 설치해준다.

npm install -g firebase-tools

 

설치 후 터미널에서 아래 커맨드를 입력하여 로그인을 진행한다

firebase login

 

 

프로젝트 생성

프로젝트를 생성하고자하는 폴더로 이동하여

아래 커맨드를 입력한다.

firebase init functions

아래와 같이 선택(스페이스바) 한다.

언어는 javascript

나머지는 다 default로 선택하면

성공 🎉

 

만약, firestore를 사용한다면

아래 커맨드도 입력해줘야한다.

firebase init firestore

 

 

코드 작성

const { onRequest } = require("firebase-functions/v2/https");
const logger = require("firebase-functions/logger");

exports.helloWorld = onRequest((request, response) => {
  logger.info("Hello logs!", { structuredData: true });
  response.send("Hello from Firebase!");
});

index.js 파일에서 위와 같이 함수를 작성한다.

 

 

로컬 실행

firebase serve

 

 

배포 

 firebase deploy --only functions  // 전체 배포
firebase deploy --only functions:<함수명> // 특정 함수만 배포
firebase deploy --only functions --debug // 배포시 로그 확인 가능

위와 같은 커맨드로 작성한 함수를 배포할 수 있다.

 

만약..

이런 오류가 난다면 firebase console 접속한다.

Unable to retrieve the repository metadata for projects/*/locations/*/repositories/gcf-artifacts. 
Ensure that the Cloud Functions service account has 'artifactregistry.repositories.list' and 'artifactregistry.repositories.get' permissions. 
You can add the permissions by granting the role 'roles/artifactregistry.reader'.

설정 아이콘을 통해 프로젝트 설정에 접속한다.

 

상단의 <서비스 계정> 메뉴에 접속하고 우측 하단의 <서비스 계정 ~개>를 클릭한다.

 

마지막 쯤에 있는 <firebase-service-account@firebase-sa-management.iam.gserviceaccount.com> 계정에 우측 연필 아이콘을 누르고

<역할> 부분에 <Artifact Registry 리더>를 선택해서 저장하고 다시 배포하면 성공.

반응형