처음 Firebase를 만져보세요 (Functions)

소개



안녕하세요. 안녕하세요. 안녕하세요.
이번에는 Firebase의 Functions에 대해 살펴 보겠습니다.
그럼 빨리 가보자.
※이번에도 web 베이스(Vue.js)의 해설입니다.

Functions(Cloud Functions)란?



htps : // 푹 빠져라. 오, ぇ. 코 m / 드 cs / 훈 c 치온 s? hl = 그럼
Firebase 기능 및 HTTPS 요청에 의해 트리거된 이벤트에 따라 백엔드 코드를 자동으로 실행할 수 있습니다.

Cloud Functions 사용



준비



먼저 CLI에서 firebase 명령을 사용할 수 있도록 합니다.

다음 명령을 사용하여 firebase-tools를 설치합니다.
$ npm install -g firebase-tools

설치가 완료되면 성공적으로 설치되었거나 다음 명령을 사용하여 버전을 확인해 보십시오.
$ firebase --version

firebase에 로그인
먼저 CLI에서 firebase로 로그인합니다.

그 이유는 CLI에서 애플리케이션을 배포하고 싶기 때문입니다.

로그인은 다음 명령으로 할 수 있습니다.
$ firebase login

Cloud Functions 사용



적당한 디렉토리를 작성해 이동해, 다음을 두드립니다.
$ firebase init



다음에 끈다 프로젝트를 듣기 때문에 선택한다.

다음 Functions를 쓰는 언어를 듣기 때문에 선택한다.
※Javascript와 Typescript를 선택할 수 있습니다.
※이번은 javascript를 선택하므로 javascript를 사용한 해설을 합니다.
다음으로 ESLint를 사용할지 묻습니다. 특별한 조건이 없으므로 엔터를 누릅니다. (지정하지 않고 엔터를 하면 No가 됩니다)
마지막으로 npm에서 종속성을 설치할지 묻습니다. (지정하지 않고 엔터하면 Yes가 됩니다)Firebase initialization complete! 와 나오면 준비 종료.

덧붙여서 여러분이 만지는 파일입니다.

funstions/index.js

const functions = require('firebase-functions');

// // Create and Deploy Your First Cloud Functions
// // https://firebase.google.com/docs/functions/write-firebase-functions

exports.helloWorld = functions.https.onRequest((request, response) => {
 response.send("Hello from Firebase!");
});

로컬 환경에서 실행


$ cd functions
$ npm run serve

배포


$ firebase deploy

컬렉션을 검색하는 API



const functions = require('firebase-functions');

// cloud functionでfirestoreを使うのに必要な設定は以下の3行
const admin = require('firebase-admin')
admin.initializeApp(functions.config().firebase)
const db = admin.firestore();

exports.helloWorld = functions.https.onRequest((request, response) => {
 //response.send("Hello from Firebase!");
    db.collection("users")
    .get()
    .then((query) => {
        var buff = [];
        query.forEach((doc) => {
            var data = doc.data();
            buff.push({
                "id": doc.id,
                "name": data.name, 
                "age":data.age
            });
        });
        response.json(buff);
    })
    .catch((error)=>{
        response.send(error);
    });
});

우선 여기에서 설명하는 것은 Cloud Functions에서 FireStore 등
Firebase의 기능을 사용하고 싶다면, 코멘트에서도 쓰고 있습니다만,
아래 코드를 추가하십시오.

const admin = require('firebase-admin')
admin.initializeApp(functions.config().firebase)
const db = admin.firestore();

단지 여기서 문제가・・・

Firebase에 배포하면 데이터를 가져올 수 있지만 로컬에서는 데이터를 가져올 수 없습니다.
개발 중에 일부러 배포하여 인터넷에 공개한 후 동작 확인해야 합니다.
분명히 말하면 귀찮습니다.
다음은 로컬에서도 데이터를 검색하고 확인하는 방법입니다.
다음 절차를 수행하십시오.


③을 클릭 후 json 파일을 만들 수 있으므로 serviceAccountKey.json 로 이름을 바꾸고 프로젝트에 추가하십시오.
이 파일은 절대로 후회하지 마십시오.

참고로 Git 관리에 포함하지 않는 파일을 지정하기 위해 gitignore의 맨 아래에 다음을 추가하십시오.
functions/serviceAccountKey.json



마지막으로 이와 같이 코드를 편집하면 로컬 환경에서도 움직이게 됩니다.

const functions = require('firebase-functions');
// cloud functionでfirestoreを使うのに必要な設定は以下の2行
const admin = require('firebase-admin')
//admin.initializeApp(functions.config().firebase)
const serviceAccount = require("../functions/serviceAccountKey.json");

admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  databaseURL: "*********************"
});


// // Create and Deploy Your First Cloud Functions
// // https://firebase.google.com/docs/functions/write-firebase-functions

const db = admin.firestore();
exports.helloWorld = functions.https.onRequest((request, response) => {
 //response.send("Hello from Firebase!");
    db.collection("users")
    .get()
    .then((query) => {
        var buff = [];
        query.forEach((doc) => {
            var data = doc.data();
            buff.push({
                "id": doc.id,
                "name": data.name, 
                "age":data.age
            });
        });
        response.json(buff);
    })
    .catch((error)=>{
        response.send(error);
    });
});

감상


  • 이것을 계기로 진심으로 TypeScript 하려고 했다.
  • express를 사용하여 REST API를 만들고 싶습니다.

  • 그래서 긴급 퀘스트!
    express를 사용하여 REST API를 만드는 방법을 살펴 보겠습니다.

    이상.
    해설이 얕은 곳이라든지, 실수등이 있으면 가르쳐 주세요.
    끝까지 읽어 주셔서 감사합니다.

    트위터 하고 있습니다. 좋으면 확인해보세요.

    링크


  • 첫 Firebase를 만져보세요 (도입편)
  • 최초의 Firebase를 만져보세요(Authentication)
  • 처음 Firebase를 만져보세요 (Database)
  • 처음 Firebase를 만져보세요 (Storage)
  • 좋은 웹페이지 즐겨찾기