Express 앱에서 Firestore 데이터베이스를 만들고 연결하는 방법은 무엇입니까?

웹 개발자로서 저는 원하는 특정 작업을 수행하는 데 도움이 되는 간단한 가이드를 찾는 것이 때때로 얼마나 어려운지 이해합니다. 그래서 저는 초보자가 expressjs를 사용하여 firebase의 firestore 데이터베이스로 작업하는 데 도움이 되는 간단한 가이드를 만드는 것에 대해 생각했습니다.

이 가이드에서는 expressjs 앱을 만들고, Firestore 데이터베이스를 만들고 연결한 다음, 테스트를 위해 일부 데이터를 저장하는 데 필요한 모든 단계를 보여드리겠습니다.

우선 익스프레스 앱을 만들어 봅시다.

폴더 내에서 다음을 실행합니다.

npm init && npm install express --save


Express 앱을 초기화하기 위해 index.js라는 파일을 생성합니다.

다음으로 express 앱 내부에 firesbase-admin 모듈을 설치해야 합니다.

npm install firebase-admin --save


방금 설치한 모듈은 데이터베이스와 상호 작용하는 데 필요한 몇 가지 내장 메서드에 대한 액세스를 제공합니다. 이러한 메서드는 다음과 같습니다. initializeApp, cert 및 getFirestore는 다음을 사용하여 언급된 메서드를 분해합니다.

const express = require("express");
const app = express();

const { initializeApp, cert } = require("firebase-admin/app");
const { getFirestore } = require("firebase-admin/firestore");


다음으로 firestore 실시간 데이터베이스에 액세스하기 위해 firebase 프로젝트를 만들어야 합니다.



Sample-project라는 프로젝트를 만든 후 Firestore에 연결할 웹 앱을 만들어야 합니다.



웹앱을 만든 후 프로젝트 개요에 액세스하여 여기에서 Firestore 데이터베이스를 만들 수 있습니다.



다음으로 해야 할 일은 데이터베이스와 상호 작용할 새 서비스 계정 키를 생성하는 것입니다. 여기에서 다운로드하고 프로젝트에서 원하는 대로 이름을 지정할 수 있습니다. 제 경우에는 이름을 serviceAccountKey.json으로 지정했습니다.

여기에서 프로젝트 설정으로 이동한 다음 서비스 계정으로 이동하고 아래 이미지에 표시된 새 키 생성을 클릭합니다.



serviceAccountKey를 다운로드하라는 메시지가 표시되며 프로젝트 내에서 다운로드해야 합니다.

다음으로 다음과 같이 익스프레스 앱에 키를 포함해야 합니다.

const serviceAccount = require("./serviceAccountKey.json");


관리자 권한으로 앱을 초기화하려면 다음과 같이 앱을 초기화해야 합니다.

initializeApp({
  credential: cert(serviceAccount),
  databaseURL: process.env.databaseURL
});


프로젝트 ID + ".firebaseio.com"을 추가하기만 하면 데이터베이스 URL을 얻을 수 있습니다.



위의 스크린샷에 언급된 대로 프로젝트 설정으로 이동하여 프로젝트 ID를 얻을 수 있습니다.

마지막으로 이 모든 단계를 거쳐 앱에서 데이터베이스와 통신할 수 있는 firestore 인스턴스를 얻는 마지막 단계에 도달했습니다.

const db = getFirestore();


이제 새 컬렉션을 만들고 테스트를 위해 일부 문서를 여기에 삽입하는 첫 번째 요청을 할 시간입니다.

app.post("/testDB", (req, res) => {

let setDoc = 
db.collection('testCollection').doc('testDoc').set(req.body);

res.send({'Message': 'Success'});

});


이 가이드가 마음에 드셨기를 바라며 이에 대한 귀하의 의견을 찾고 있습니다. 추가할 사항이 있으면 주저하지 말고 의견을 남겨주세요. 감사합니다 :).

좋은 웹페이지 즐겨찾기