create account

[kr-dev] Firebase 데이터베이스 프로젝트 설정 by happyberrysboy

View this thread on: hive.blogpeakd.comecency.com
· @happyberrysboy ·
$6.46
[kr-dev] Firebase 데이터베이스 프로젝트 설정
![](https://steemitimages.com/640x0/https://cdn.steemitimages.com/DQmbo4bis7WgjdVYdXR9VbzWdzh2aCXw2JFVKfruYNCNV4G/wdt.png)

안녕하세요, 햅뽀이입니다.

오늘은 Firebase의 데이터베이스 설정하는 방법을 함께해보려고합니다.

![image.png](https://ipfs.busy.org/ipfs/QmU69NrWnZviCTDGrHh1iRvBrq5fYetvvwboUoksgku7TY)
원래 이렇게 많은 서비스를 제공하고 있지만, 일단 저는 데이터베이스가 필요 하기 때문에 먼저 데이터베이스만 다루어 보려고합니다. 간단한 앱의 DB로는 Fireabase의 데이터베이스가 짱이라던 @anpigon 님의 말을 듣고, 설정을 실제로 해보면서 포스팅을 작성해봅니다.

___

## 1. Firebase 접속 및 프로젝트생성
- 이미 하나 추가를 한 상태에서 캡쳐를 했네요.
- 현재개발중인 Steem Tools의 사용자별 설정을 DB로 저장해놓고 어느 크롬에서도 불러올 수 있도록 개발할 예정입니다.
- steem-extension 으로 프로젝트명을 설정하였습니다.

![image.png](https://ipfs.busy.org/ipfs/QmemkM82PKWf8NmuXGJdzBC2KRBukRXGHNZ8X5nfzF2K8K)

## 2. Firebase Console
- Firebase 콘솔화면입니다.
- 개발도구 뿐만아니라 품질/분석/성장에 대한 부분까지 종합적으로 서비스를 합니다.

![image.png](https://ipfs.busy.org/ipfs/QmUNae4KPPgtdknFnVF91sC2GRd95s2ZPWtJwviZbCVjcL)

## 3. 데이터 베이스 설명
- 데이터베이스는 [Realtime Database](https://firebase.google.com/docs/database?authuser=0) / [Cloud Firestore](https://firebase.google.com/docs/firestore?authuser=0)로 구분됩니다.

 ![image.png](https://ipfs.busy.org/ipfs/QmRsWKfu8Qj2oo9irv9ZGZ6qMTgbpEaMR5hBh8SGJJ8o3u)

- [차이점 설명](https://firebase.google.com/docs/database/rtdb-vs-firestore?authuser=0) 를 참고하시면 차이점을 아실 수 있을 듯 합니다.
- 두가지 DB 모두 No-SQL 기반입니다.
- 그 외에 많은 비교설명이 있는데, 대체로 Cloud Firestore가 진보된 DB라고 설명하고 있습니다.
- 그래서!! Cloud Firestore로 진행해봅니다..!! 최신을 써봐야죠!!

## 4. Web에 Firebase 설정
- 현재 개발중인 Chrome Extension은 웹기반이기 때문에 웹으로 설정합니다.
- [웹 이외의 언어](https://firebase.google.com/docs/firestore/quickstart?authuser=0)는 링크를 참조하시면 됩니다.

```
<script src="https://www.gstatic.com/firebasejs/4.12.1/firebase.js"></script>
<script src="https://www.gstatic.com/firebasejs/4.12.1/firebase-firestore.js"></script>

//  Cloud Firestore 인스턴스를 초기화합니다.
firebase.initializeApp({
  apiKey: '### FIREBASE API KEY ###',
  authDomain: '### FIREBASE AUTH DOMAIN ###',
  projectId: '### CLOUD FIRESTORE PROJECT ID ###'
});

// Initialize Cloud Firestore through Firebase
var db = firebase.firestore();
```

## 5. Firebase Database 사용법(쓰기)
- Cloud Firestore는 컬렉션에 저장되는 문서에 데이터를 저장합니다. 문서에 데이터를 처음 추가할 때 Cloud Firestore에서 암시적으로 컬렉션과 문서를 만듭니다. 컬렉션이나 문서를 명시적으로 만들 필요가 없습니다.

```
db.collection("users").add({
    first: "Ada",
    last: "Lovelace",
    born: 1815
})
.then(function(docRef) {
    console.log("Document written with ID: ", docRef.id);
})
.catch(function(error) {
    console.error("Error adding document: ", error);
});

```

## 6. Firebase Database 사용법(읽기)
- Cloud Firestore에 추가한 데이터를 빠르게 확인하려면 Firebase 콘솔의 데이터 뷰어를 사용하면 됩니다.

```
db.collection("users").get().then((querySnapshot) => {
    querySnapshot.forEach((doc) => {
        console.log(`${doc.id} => ${doc.data()}`);
    });
});
```

## 7. 저장된 데이터 확인
- 아래와 같이 데이터가 저장되었습니다. DB 설계를 하지 않아도 일단 그냥 들어가고 봅니다.(테스트를 여러번해서 동일 데이터가 여러번 들어갔습니다.)
- 추후 Update/Delete 기능도 확인해볼 예정입니다.

![image.png](https://ipfs.busy.org/ipfs/QmNc4Bx1duLYCdSRWAEAitna5u2Z7DHu6LiuL1oxrAVtWA)


___

생각보다 정리하면서 실행해보려니 오래 걸리네요. 아직 파악해볼 기능이 많은데, 오늘은 여기까지 해야 하겠습니다. 4시간을 공부하면서 정리했네요;;

그럼 남은 주말.. 잘 보내십시오..

읽어주셔서 감사합니다!!

## WHAN DEV TEAM 가즈아!!!
👍  , , , , , , , , , , , , , , , , , , , , , , , , ,
properties (23)
authorhappyberrysboy
permlinkkr-dev-firebase
categorywhan
json_metadata{"community":"busy","app":"busy/2.5.6","format":"markdown","tags":["whan","kr-dev","firebase","jjm","busy"],"users":["anpigon"],"links":["/@anpigon","https://firebase.google.com/docs/database?authuser=0","https://firebase.google.com/docs/firestore?authuser=0","https://firebase.google.com/docs/database/rtdb-vs-firestore?authuser=0","https://firebase.google.com/docs/firestore/quickstart?authuser=0"],"image":["https://steemitimages.com/640x0/https://cdn.steemitimages.com/DQmbo4bis7WgjdVYdXR9VbzWdzh2aCXw2JFVKfruYNCNV4G/wdt.png","https://ipfs.busy.org/ipfs/QmU69NrWnZviCTDGrHh1iRvBrq5fYetvvwboUoksgku7TY","https://ipfs.busy.org/ipfs/QmemkM82PKWf8NmuXGJdzBC2KRBukRXGHNZ8X5nfzF2K8K","https://ipfs.busy.org/ipfs/QmUNae4KPPgtdknFnVF91sC2GRd95s2ZPWtJwviZbCVjcL","https://ipfs.busy.org/ipfs/QmRsWKfu8Qj2oo9irv9ZGZ6qMTgbpEaMR5hBh8SGJJ8o3u","https://ipfs.busy.org/ipfs/QmNc4Bx1duLYCdSRWAEAitna5u2Z7DHu6LiuL1oxrAVtWA"]}
created2019-06-02 06:39:48
last_update2019-06-02 06:39:48
depth0
children5
last_payout2019-06-09 06:39:48
cashout_time1969-12-31 23:59:59
total_payout_value5.061 HBD
curator_payout_value1.395 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length3,075
author_reputation314,484,142,656,697
root_title"[kr-dev] Firebase 데이터베이스 프로젝트 설정"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id85,897,950
net_rshares12,387,965,268,468
author_curate_reward""
vote details (26)
@anpigon · (edited)
파이어베이스를 클라이언트에서 연결하면 `FIREBASE API KEY`가 노출되기 때문에
클라우드 functions을 사용하여 db에 접근하는 것을 권장합니다. 당연히 펑션 호출은 인증된 사용자만 호출 할 수 있어야합니다.

# WHAN DEV TEAM 가즈아!!!

#kr #whan #dev #kr-dev #happyberrysboy
properties (22)
authoranpigon
permlinkpsglt1
categorywhan
json_metadata{"tags":["whan","kr","dev","kr-dev","happyberrysboy"],"app":"steemit/0.1"}
created2019-06-02 06:53:27
last_update2019-06-02 06:53:54
depth1
children0
last_payout2019-06-09 06:53:27
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length188
author_reputation17,258,940,000,931
root_title"[kr-dev] Firebase 데이터베이스 프로젝트 설정"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id85,898,252
net_rshares0
@anpigon ·
@시리즈
properties (22)
authoranpigon
permlinkre-happyberrysboy-kr-dev-firebase-20190602t080236811z
categorywhan
json_metadata{"community":"busy","app":"busy/2.5.6","format":"markdown","tags":["whan"],"users":[],"links":[],"image":[]}
created2019-06-02 08:02:39
last_update2019-06-02 08:02:39
depth1
children1
last_payout2019-06-09 08:02:39
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length4
author_reputation17,258,940,000,931
root_title"[kr-dev] Firebase 데이터베이스 프로젝트 설정"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id85,899,743
net_rshares0
@steem.apps ·
happyberrysboy님의 글 검색 결과 '[kr-dev]' 시리즈가 총 15건 검색되었습니다. <br />
이전 글 : [[kr-dev] sct payout claim의 또다른 방법 및 Steemit Tools 소개](/@happyberrysboy/kr-dev-sct-payout-claim-steemit-tools)

undefined|
--|
<sup>[[kr-dev][nodejs][logging] winston을 이용한 로그 남기기](/@happyberrysboy/kr-dev-nodejs-logging-winston), [[Busy 링크]](https://busy.org/@happyberrysboy/kr-dev-nodejs-logging-winston) </sup>| 
<sup>[[kr-dev] Steemjs를 이용하여 비밀메세지(send private message, send secret message) 보내기](/@happyberrysboy/kr-dev-steemjs-send-private-message-send-secret-message), [[Busy 링크]](https://busy.org/@happyberrysboy/kr-dev-steemjs-send-private-message-send-secret-message) </sup>| 
<sup>[[kr-dev] Javascript에서 Class형태 정의 방법](/@happyberrysboy/kr-dev-javascript-class), [[Busy 링크]](https://busy.org/@happyberrysboy/kr-dev-javascript-class) </sup>| 
<sup>[[kr-dev] vue.js 기본 구조(vue-router 포함)](/@happyberrysboy/kr-dev-vue-js-vue-router), [[Busy 링크]](https://busy.org/@happyberrysboy/kr-dev-vue-js-vue-router) </sup>| 
<sup>[[kr-dev] 스팀커넥트 3 로그인 관련](/@happyberrysboy/kr-dev-3), [[Busy 링크]](https://busy.org/@happyberrysboy/kr-dev-3) </sup>| 
<sup>[[kr-dev] Vue.js 기초!! 간단한 Directives !!](/@happyberrysboy/kr-dev-vue-js-directives), [[Busy 링크]](https://busy.org/@happyberrysboy/kr-dev-vue-js-directives) </sup>| 
<sup>[[kr-dev] vue.js 의 핵심 기능!! "VUEX" 정리!!](/@happyberrysboy/kr-dev-vue-js-vuex), [[Busy 링크]](https://busy.org/@happyberrysboy/kr-dev-vue-js-vuex) </sup>| 
<sup>[[kr-dev]2dimensions Tutorial 후기!!](/@happyberrysboy/kr-dev-2dimensions-tutorial), [[Busy 링크]](https://busy.org/@happyberrysboy/kr-dev-2dimensions-tutorial) </sup>| 
<sup>[[kr-dev] Steem Tools 전면 개편!!(크롬 확장프로그램)](/@happyberrysboy/kr-dev-steem-tools), [[Busy 링크]](https://busy.org/@happyberrysboy/kr-dev-steem-tools) </sup>| 
<sup>[[kr-dev] Steem Tools 디자인 변경](/@happyberrysboy/2qkzl4-kr-dev-steem-tools), [[Busy 링크]](https://busy.org/@happyberrysboy/2qkzl4-kr-dev-steem-tools) </sup>| 
<sup>[[kr-dev] Steemit Tools 유저 바로가기 기능 구현](/@happyberrysboy/kr-dev-steemit-tools), [[Busy 링크]](https://busy.org/@happyberrysboy/kr-dev-steemit-tools) </sup>| 
<sup>[[kr-dev] Steemit Tools, Tag Filter 기능](/@happyberrysboy/kr-dev-steemit-tools-tag-filter), [[Busy 링크]](https://busy.org/@happyberrysboy/kr-dev-steemit-tools-tag-filter) </sup>| 
<sup>[[kr-dev] Steemit Tools Tag 바로가기 / Markdown 가져오기](/@happyberrysboy/kr-dev-steemit-tools-tag-markdown), [[Busy 링크]](https://busy.org/@happyberrysboy/kr-dev-steemit-tools-tag-markdown) </sup>| 
<sup>[[kr-dev] sct payout claim의 또다른 방법 및 Steemit Tools 소개](/@happyberrysboy/kr-dev-sct-payout-claim-steemit-tools), [[Busy 링크]](https://busy.org/@happyberrysboy/kr-dev-sct-payout-claim-steemit-tools) </sup>| 
<sup>[[kr-dev] Firebase 데이터베이스 프로젝트 설정](/@happyberrysboy/kr-dev-firebase), [[Busy 링크]](https://busy.org/@happyberrysboy/kr-dev-firebase) <div class='phishy'>(현재글)</div></sup>| 
properties (22)
authorsteem.apps
permlinkre---------re-happyberrysboy-kr-dev-firebase-20190602t080258498z
categorywhan
json_metadata{"app":"steem.apps/0.1","format":"markdown"}
created2019-06-02 08:03:00
last_update2019-06-02 08:03:00
depth2
children0
last_payout2019-06-09 08:03:00
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length2,874
author_reputation7,218,006,883,278
root_title"[kr-dev] Firebase 데이터베이스 프로젝트 설정"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id85,899,749
net_rshares0
@urobotics ·
캬 이렇게 많은걸 개발하고 계시군요. ㅎㅎ happyberrysboy 님 안피곤님 대단합니다. ㅋㅋ
properties (22)
authorurobotics
permlinkpsjuhd
categorywhan
json_metadata{"tags":["whan"],"app":"steemit/0.1"}
created2019-06-04 00:53:42
last_update2019-06-04 00:53:42
depth1
children0
last_payout2019-06-11 00:53:42
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length55
author_reputation14,923,860,622,500
root_title"[kr-dev] Firebase 데이터베이스 프로젝트 설정"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id86,008,467
net_rshares0
@virus707 ·
Thank you for your continued support towards JJM. For each 1000 JJM you are holding, you can get an additional 1% of upvote. 10,000JJM would give you a 11% daily voting from the 600K SP virus707 account.
properties (22)
authorvirus707
permlinkre-kr-dev-firebase-1559473769
categorywhan
json_metadata{"tags":["jjm"]}
created2019-06-02 11:09:27
last_update2019-06-02 11:09:27
depth1
children0
last_payout2019-06-09 11:09:27
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length203
author_reputation557,563,606,581,756
root_title"[kr-dev] Firebase 데이터베이스 프로젝트 설정"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id85,904,221
net_rshares0