Firebase Admin SDK를 Node.js에서 사용하는 방법을 단계별로 설명드리겠습니다.
1. Firebase 프로젝트 생성 및 서비스 계정 키 생성
- Firebase Console에 접속합니다.
- 새 프로젝트를 생성하거나 기존 프로젝트를 엽니다.
- 설정(톱니바퀴) > 프로젝트 설정으로 이동합니다.
- 서비스 계정 탭을 선택한 후, Firebase Admin SDK를 선택합니다.
- 새 비공개 키 생성을 클릭하여 JSON 키 파일을 다운로드합니다.
2. Node.js 프로젝트 설정
Firebase Admin SDK를 설치하고 설정합니다.
1) Node.js 프로젝트 초기화
mkdir firebase-admin-example cd firebase-admin-example npm init -y
2) Firebase Admin SDK 설치
npm install firebase-admin
3. Firebase Admin SDK 초기화
서비스 계정 키를 사용하여 Firebase Admin SDK를 초기화합니다.
index.js
파일 생성
const admin = require('firebase-admin'); const serviceAccount = require('./path/to/your/serviceAccountKey.json'); // 다운로드한 JSON 파일 경로 // Firebase Admin SDK 초기화 admin.initializeApp({ credential: admin.credential.cert(serviceAccount), databaseURL: 'https://<your-project-id>.firebaseio.com' // Firebase 실시간 데이터베이스 URL }); // Firebase 기능 사용 예시 (async () => { try { const user = await admin.auth().getUserByEmail('user@example.com'); console.log('User data:', user); } catch (error) { console.error('Error fetching user data:', error); } })();
⚠️ 서비스 계정 키 보안
서비스 계정 키 파일은 민감한 정보이므로 깃헙 등 공개 저장소에 업로드하지 마세요..gitignore
파일에 추가하세요.
echo "path/to/your/serviceAccountKey.json" >> .gitignore
4. Firebase 기능 사용
Firebase Admin SDK로 사용할 수 있는 주요 기능:
- 인증(Authentication): 사용자 관리 (생성, 읽기, 삭제 등)
- 실시간 데이터베이스(Realtime Database): 데이터 읽기 및 쓰기
- 클라우드 Firestore(Cloud Firestore): 데이터 관리
- 클라우드 메시징(Cloud Messaging): 푸시 알림 전송
- 스토리지(Storage): 파일 업로드 및 다운로드
예시: 사용자 생성
(async () => { try { const user = await admin.auth().createUser({ email: 'newuser@example.com', password: 'password123', displayName: 'New User' }); console.log('Successfully created new user:', user); } catch (error) { console.error('Error creating new user:', error); } })();
5. Firebase Admin SDK 테스트
- Node.js 서버 실행:
node index.js
- 로그에서 Firebase 기능이 정상적으로 작동하는지 확인합니다.