Firestore에 정보 저장한 모습 및 주요 코드
이 페이지의 목표는 아래와 같이 nodejs를 이용해서 아래와 같이 firebase에 data를 저장하는것입니다.
firebase및 node 프로젝트의 연동 방법에 대한 설명을 아래에 자세히 설명합니다.
갈 길이 급하신 분들을 위해 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 사이트를 구글에서 접속하거나 아래 링크로 가서 프로젝트를 만들어야 합니다.
아래 프로젝트 만들기를 눌러 다음 다음을 클릭하면 만들어지기 때문에 자세히 설명하진 않도록 하겠습니다.
2. nodejs 프로젝트 만들기
다른 블로그 등을 참고해서 만들거나 아래 페이지를 참조해서 만들면 됩니다.
https://developer-mango.tistory.com/5
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 사이트에서 저장된것 확인
아래와 같이 저장이 되면 성공입니다.
다들 문제 없이 잘 저장 되길 빕니다.
'Develop > Nodejs' 카테고리의 다른 글
nodejs 현재 시간 가져오기 hh:mm:ss 형식 (0) | 2023.02.28 |
---|---|
[Node] post 구현 (0) | 2021.04.18 |
[Node로 binance api 사용하기] candle 정보 읽어오기 (0) | 2021.04.18 |
[Node.js] java의 class 처럼 모듈 빼서 사용하기 (0) | 2021.03.07 |
[Node.js] Express로 프로젝트 만들기, Express-generator (0) | 2021.02.19 |
댓글