본문 바로가기
Develop/Nodejs

[Nodejs] Nodejs 로 Firestore에 정보 저장하기(Firebase 연동)

by 투게더리 2022. 2. 25.
반응형

Firestore에 정보 저장한 모습 및 주요 코드 


이 페이지의 목표는 아래와 같이 nodejs를 이용해서 아래와 같이 firebase에 data를 저장하는것입니다.

firebase및 node 프로젝트의 연동 방법에 대한 설명을 아래에 자세히 설명합니다.

firestore에 정보 저장된 모습

 

갈 길이 급하신 분들을 위해 nodejs의 주요 코드는 아래와 같습니다.

단순히 Firestroe에 연결하고 데이터 하나를 삽입하는 코드입니다.

 

var admin = require("firebase-admin");
var firestore = require("firebase-admin/firestore");

var serviceAccount = require("./mango-xxxxxxxxxxxxxxxxxx.json");

admin.initializeApp({
  credential: admin.credential.cert(serviceAccount)
});

const db = firestore.getFirestore();

test();

async function test() {
  db.collection("cities").doc("LA2").set({
    name: "Los Angeles 2",
    state: "CA 2",
    country: "USA 2"
  });
}

 

 

 

Firebase프로젝트와 nodejs프로젝트 만들기


1. Firebase 프로젝트 만들기

먼저 firebase 사이트를 구글에서 접속하거나 아래 링크로 가서 프로젝트를 만들어야 합니다.

 

 

Firebase

Firebase는 고품질 앱을 빠르게 개발하고 비즈니스를 성장시키는 데 도움이 되는 Google의 모바일 플랫폼입니다.

firebase.google.com

 

아래 프로젝트 만들기를 눌러 다음 다음을 클릭하면 만들어지기 때문에 자세히 설명하진 않도록 하겠습니다.

firebase 프로젝트 만들기

2. nodejs 프로젝트 만들기

다른 블로그 등을 참고해서 만들거나 아래 페이지를 참조해서 만들면 됩니다.

https://developer-mango.tistory.com/5

 

[Node.js] Express로 프로젝트 만들기, Express-generator

1. Express란? 웹 서버에서 필요한 기능들을 미리 구현된 웹 프레임워크 이다. (라우팅, 세션, 템플릿 등) 2. Express-generator? Express만 설치할 수도 있는데 (ex npm install express --save) Express-generat..

mangveloper.com

 

 

Firestore 설정하기


1. Firestore database 만들기

Firestore Database 메뉴 -> 데이터베이스 만들기 버튼을 눌러 만들면 됩니다.

Firestore와 Realtime database가 있는데 둘은 비슷한 db이고 서로 장단점이 있는데 Firestore가 더 뒤에 나왔고 구글에서 더 권장한다 하니 그냥 Firestore를 쓰면 됩니다.

 

설정할 때 테스트 모드 프로덕션 모드 선택할 수 있는데 프로덕션 모드는 프론트엔드에서 접속 허용할지등을 설정할 수 있는 부분인데 언제든 바꿀 수 있으므로 테스트 모드로 만들면됩니다.

그 위에 서버는 아무거나 해도 되지만 서울은 "asia-northeast3"입니다.

2. 비공개 키 생성

"프로젝트 설정 -> 서비스 계정 -> 새 비공개 키 생성" 을 해서 비공개 키를 생성합니다.

이 파일은 node프로젝트에서 db에 접근하기 위한 정보를 담고 있습니다.

생성된 파일은 아래와 같은 정보들이 들어 있습니다.

{
  "type": "service_account",
  "project_id": "",
  "private_key_id": "",
  "private_key": "",
  "client_email": "",
  "client_id": "",
  "auth_uri": "",
  "token_uri": "",
  "auth_provider_x509_cert_url": "",
  "client_x509_cert_url": ""
}

 

 

 

Nodejs 에서 Firestore 접근하기


1. firebase-admin 모듈

npm 또는 yarn을 이용해 fireabase-admin 모듈을 다운 받습니다.

ex) npm install firebase-adming --save

 

2. 파일 프로젝트에 넣기

위에서 생성한 "비공개 키"를 node 프로젝트 아무곳에나 넣습니다.

 

3. 소스 코드 수정

app.js에서 아래와 같은 코드를 추가 합니다. serviceAccount에 위에 "비공개 키"의 filepath를 넣어주면 됩니다.

var admin = require("firebase-admin");
var firestore = require("firebase-admin/firestore");

var serviceAccount = require("./mango-xxxxxxxxxxxxxxxxxx.json");

admin.initializeApp({
  credential: admin.credential.cert(serviceAccount)
});

const db = firestore.getFirestore();

test();

async function test() {
  db.collection("cities").doc("LA2").set({
    name: "Los Angeles 2",
    state: "CA 2",
    country: "USA 2"
  });
}

 

4. firebase 사이트에서 저장된것 확인

아래와 같이 저장이 되면 성공입니다.

 

다들 문제 없이 잘 저장 되길 빕니다.

 

 

다른 Post 보기

 

반응형

댓글