강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của oridori2705
oridori2705

câu hỏi đã được viết

Tìm hiểu mã hóa DO IT front-end trong khi tạo nó (Next.js, Typescript)

Thêm mã quản trị căn cứ hỏa lực

클래스 방식말고

Viết

·

287

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

 

설명해주신 싱글톤? 방식말고 평소에 사용하는 방식으로 바꿔봤는데 맞는지 검사가능할까요??

hello.ts


import { NextApiRequest, NextApiResponse } from 'next';

const admin = require('../../model/firebase_admin');

export default function handler(_: NextApiRequest, res: NextApiResponse) {
  const db = admin.firestore();
  db.collection('test');
  res.status(200).json({ name: 'John Doe' });
}

modle/firebase_admin.ts

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

interface Config {
  credentials: {
    privateKey: string;
    clientEmail: string;
    projectId: string;
  };
}

if (!admin.apps.length) {
  const config: Config = {
    credentials: {
      projectId: process.env.projectId || '',
      clientEmail: process.env.clientEmail || '',
      privateKey: process.env.privateKey?.replace(/\\n/g, '\n') || '',
    },
  };
  admin.initializeApp({
    credential: admin.credential.cert(config.credentials),
  });
  console.info('bootstrap firebase admin');
}

module.exports = admin;

현재 firestore만 hello.ts에서 test 보내는 방식만 따라해봤습니다!

 

 

질문 1. 이 방식으로 사용해도 될까요??

  • 이 방식으로 문제될게 있을까요?

질문 2. 아래 코드가 출력이 안되는데 이유가 있을까요?

console.info('bootstrap firebase admin');
  • 위 전체코드에서처럼 if문안에 작성하게되면 콘솔이 영상처럼 터미널에 안뜨는데 왜그런걸까요?

  • if문 밖에 선언하면 잘 출력됩니다.

 

 

 

next.js

Câu trả lời 1

0

totuworld님의 프로필 이미지
totuworld
Người chia sẻ kiến thức

안녕하세요 oriori2705님!

 

작성해주신 코드 잘 동작할듯해요.

admin에 앱이 있는지 체크하는 부분이 있잖아요.

if (!admin.apps.length) {

다만, 이 코드는 require로 가져오도록 하는데요.

이게 여러 파일에 걸쳐있을 때, 어플리케이션이 실행되면 한번만 init 이 되는지 확인해봐야겠네요.

 

 

2번 질문은 admin.apps.length가 어떤 값을 가지는지 확인해보셔야할 듯하네요.

if 문안에서 동작안한다면 if문 코드가 실행되지 않았을 가능성이 있어요.

Hình ảnh hồ sơ của oridori2705
oridori2705

câu hỏi đã được viết

Đặt câu hỏi