프로젝트를 생성한 후, 왼쪽 톱니바퀴 표시 클릭 > 프로젝트 설정 > 서비스 계정 > 새 비공개 키 생성 을 누르면 관리자 권한 행사에 필요한 serviceAccountKey를 발급받을 수 있다.
const admin = require('firebase-admin');
const serviceAccount = require('./serviceAccoutKey.json');
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
});
const db = admin.firestore();
exports.db = db;
exports.admin = admin;
1. firebase-admin 모듈을 불러와서 admin 변수에 할당한다.(서버용 Firebase Admin SDK를 사용하기 위한 준비)
const admin = require('firebase-admin');
2. Firebase 프로젝트의 관리자 권한 인증에 필요한 비밀 정보가 포함된 서비스 계정 키 JSON 파일을 불러온다.
const serviceAccount = require('./serviceAccoutKey.json');
3. firebase-admin SDK를 초기화한다. credential로 불러온 서비스 계정 키를 사용해서 관리자 권한으로 앱을 설정한다. 여기서부터 admin 객체를 통해 Firebase의 모든 관리자 기능을 사용할 수 있게 된다.
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
});
4.Firestore 데이터베이스 인스턴스를 생성해서 db 변수에 할당한다. 이 변수를 통해 Firestore에 읽기, 쓰기 등의 작업을 할 수 있다.
const db = admin.firestore();
5. db와 admin 객체를 다른 파일에서 쓸 수 있도록 내보낸다. db만 내보내는 것이 아니라 admin도 내보낸 이유는, admin의 메서드를 사용해야 하는 경우도 존재하기 때문이다.
exports.db = db;
exports.admin = admin;