본문 바로가기

IT/개발이야기

Nuxt.js 개발기 (2) firebase로 호스팅하고 firestore를 사용한 serverless

반응형

(2) firebase로 호스팅하고 firestore를 사용한 serverless


※이 포스팅은 기술적 정보를 담고 있지 않습니다. 단순 개발 후기입니다.

 

1. firebase 호스팅

 본인은 AWS보다 GCP 쪽이 더 사용하고 UI적으로 간편하다 생각한다. AWS S3와 lambda, function응 사용하셔도 된다. firebase에서 app을 신규로 생성하고 로컬에 firebase-tools을 설치한다.

(1) firebase-tools 설치

> npm install -g firebase-tools 

(2) firebase-tools 로그인

>firebase-tools login

(3)이전 포스팅에서 사용했던 github pages프로젝트 경로에 프로젝트 시작

>cd /testProject

>firebase-tools init

 위 프로세스로 진행하면 root경로에 firebase.json.firebaserc파일이 생성된다. 사실 firebase-tools init 단계는 그냥 무시하고 해당 파일만 생성해서 deploy해도 관계없다. gitignore 설정 등을 마친 뒤 npm run generate 후 firebase deploy 하면 정상적으로 update된 파일만 compare 한 후 배포 완료된다.

 

firebase 모듈 설치 내용은 생략~

 

firebase.json

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
  "hosting": {
    "public""dist"/** public이 배포 될 파일 경로 **/
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ],
    "rewrites": [
      {
        "source""**",
        "destination""/index.html"
      }
    ]
  }
}
 
cs

ㅇㅇㅇㅎ

2. firestore

 

화면에 표출되는 article 데이터를 firebase에서 불러오도록 변경하였다. nuxt의 plugin 폴더에 firebase.js 파일을 생성한뒤 다음과 같이 작성한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import firebase from 'firebase/app'
import 'firebase/firestore'
if (!firebase.apps.length) {
  const config = {
    authDomain: "your firebase information",
    databaseURL: "your firebase information",
    projectId: "your firebase information",
    storageBucket: "your firebase information",
    messagingSenderId: "your firebase information",
    appId: "your firebase information"
  }
  firebase.initializeApp(config)
  firebase.firestore().settings({timestampsInSnapshots: true})
}
const fireDb = firebase.firestore()
export {fireDb}
cs

 

nuxt.config.js의 plugin 단락에 플러그인을 추가해준다.

 

plugins: [
'~/plugins/firebase.js'
],

 

page vue파일 스크립트에 firestore를 import 받고 다음과 같이 작성한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import {fireDb} from '~/plugins/firebase.js'
 
export default {
 
    mounted() {
        const s = fireDb.collection("post").doc(this.$route.params.id).get().then(
            (item) => {
                const r = item.data()
                this.post = r
                this.description = this.post.body.replace(/(<([^>]+)>)/ig,"").substring(0,30)
                this.post.date = r.date.toDate().toLocaleString()
            }
        )
    }
}
cs

이러면 firestore 연결도 끝

반응형

'IT > 개발이야기' 카테고리의 다른 글

Nuxt.js 개발기 (1) Github Pages  (0) 2019.06.07
파이썬을 이용한 머신러닝,딥러닝 실전 개발 입문  (0) 2017.07.10
SVN서버구성  (1) 2016.12.10
하이브리드앱 개발기  (0) 2016.11.30
하이브리드앱 개발기  (0) 2016.09.19