-
Node.js & 파이어베이스 연동NUGU 2022. 7. 1. 11:42

NUGU와 자녀가 했던 대화내용이 모두 Firebase에 거쳐서 앱으로 전송되게 하고 싶을 때 이걸 어떻게 구현해야되는지
공부했던 내용을 블로그에 간단하게 적어보려고 한다.사실 Firebase 속에 Realtime Database (실시간 데이터베이스)를 사용해서 통신을 하려고 했지만, 최근에 업데이트된
최신버전에서의 연동에 대한 정보가 부족하여 상대적으로 정보가 많은 FireStore를 사용하기로 했다.최종 결과물

Node.js를 사용해 파이어베이스에 정보 저장 1. Node.js 설치
Node.js
Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.
nodejs.org
Node.js는 V8이라는 자바스크립트 엔진과 비동기 작업을 처리하는 libuv라는 라이브러리로 이루어져 있다.
설치 방법은 위 링크를 들어가서 최신버전을 다운받으면 된다.2. Firebase 프로젝트 생성 & Node.js 프로젝트 생성
우선 Firebase 홈페이지에 들어가서 프로젝트를 생성해야된다.
https://firebase.google.com/Firebase
Firebase는 고품질 앱을 빠르게 개발하고 비즈니스를 성장시키는 데 도움이 되는 Google의 모바일 플랫폼입니다.
firebase.google.com
위 링크를 타고 들어가서, 프로젝트 만들기를 눌러 다음 다음을 클릭하면 만들어지기 때문에 자세히 설명하진 않겠다!
그 다음 Node.js의 프로젝트 생성할 때는 따로 express 프레임워크를 사용해야된다.
아래 링크를 참고해서 생성하면 된다.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
3. Firestore Database 만들기

메뉴 카테고리 메뉴부분 보면, 빌드라는 카테고리 속에 수 많은 페이지 속성들을 볼 수 있다.
우리는 이 중에서도 Firestore Database를 사용하기 때문에 Firestore Database를 선택하면 된다.

여기까지 올바르게 진행됬으면 모드를 선택할 수 있는 페이지가 나온다.
프로덕션 모드와 테스트 모드가 있는데 프로젝션 모드의 경우, 모바일 및 웹 클라이언트의 모든 읽기 및 쓰기를
거부한다고 설명되어있다.
그래서 우리는 테스트 모드로 선택하면 된다.4. 비공개 키 생성
Node 프로젝트에서 db에 접근하기 위한 정보를 담고있는 json 파일을 다운받기 위해 비공개 키를 생성 해야한다.
"프로젝트 설정 -> 서비스 계정 -> 서비스 계정 권한 관리" 에 들어가서 비공개 키를 생성하면 된다.
{ "type": "", "project_id": "", "private_key_id": "", "private_key": "", "client_email": "", "client_id": "", "auth_uri": "", "token_uri": "", "auth_provider_x509_cert_url": "", "client_x509_cert_url": "" }생성된 파일은 위와 같은 정보가 담겨있다.
5. Node.js에서 Firestore 접근하기
첫 번째로 firebase-admin 모듈을 다운받아야한다.
"npm install firebase-admin --save" 을 터미널에 입력해서 다운 받아준다.
두번 째는 다운받은 비공개 키 파일을 프로젝트에 넣어야한다.
위에서 다운받은 비공개 키 파일을 node 프로젝트 아무곳에나 넣는다.
세번 째는 Node.js를 통해 정보를 Firebase에 저장할 수 있도록 소스 코드를 수정해야한다.
app.js에서 아래와 같은 코드를 추가 한다.
serviceAccount에 위에 "비공개 키"의 파일위치를 넣어주면 됩니다.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: "홍길동", age: 20, country: "KOR" }); }6. 서버 실행하기
터미널에 "npm start" 을 입력하면 서버가 활성화 되면서 localhost로 들어가진다.
그리고 나서 Firestore를 보면!!!! Node.js에서 작성했던 정보들이 그대로 저장된 것을 볼 수 있다.
Node.js를 사용해 파이어베이스에 정보 저장 끗
'NUGU' 카테고리의 다른 글
NUGU Developers - Backend Proxy에 대해서 (0) 2022.06.22