 안녕하세요, 햅뽀이입니다. 오늘은 Firebase의 데이터베이스 설정하는 방법을 함께해보려고합니다.  원래 이렇게 많은 서비스를 제공하고 있지만, 일단 저는 데이터베이스가 필요 하기 때문에 먼저 데이터베이스만 다루어 보려고합니다. 간단한 앱의 DB로는 Fireabase의 데이터베이스가 짱이라던 @anpigon 님의 말을 듣고, 설정을 실제로 해보면서 포스팅을 작성해봅니다. ___ ## 1. Firebase 접속 및 프로젝트생성 - 이미 하나 추가를 한 상태에서 캡쳐를 했네요. - 현재개발중인 Steem Tools의 사용자별 설정을 DB로 저장해놓고 어느 크롬에서도 불러올 수 있도록 개발할 예정입니다. - steem-extension 으로 프로젝트명을 설정하였습니다.  ## 2. Firebase Console - Firebase 콘솔화면입니다. - 개발도구 뿐만아니라 품질/분석/성장에 대한 부분까지 종합적으로 서비스를 합니다.  ## 3. 데이터 베이스 설명 - 데이터베이스는 [Realtime Database](https://firebase.google.com/docs/database?authuser=0) / [Cloud Firestore](https://firebase.google.com/docs/firestore?authuser=0)로 구분됩니다.  - [차이점 설명](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 기능도 확인해볼 예정입니다.  ___ 생각보다 정리하면서 실행해보려니 오래 걸리네요. 아직 파악해볼 기능이 많은데, 오늘은 여기까지 해야 하겠습니다. 4시간을 공부하면서 정리했네요;; 그럼 남은 주말.. 잘 보내십시오.. 읽어주셔서 감사합니다!! ## WHAN DEV TEAM 가즈아!!!
author | happyberrysboy |
---|---|
permlink | kr-dev-firebase |
category | whan |
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"]} |
created | 2019-06-02 06:39:48 |
last_update | 2019-06-02 06:39:48 |
depth | 0 |
children | 5 |
last_payout | 2019-06-09 06:39:48 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 5.061 HBD |
curator_payout_value | 1.395 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 3,075 |
author_reputation | 314,484,142,656,697 |
root_title | "[kr-dev] Firebase 데이터베이스 프로젝트 설정" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 85,897,950 |
net_rshares | 12,387,965,268,468 |
author_curate_reward | "" |
voter | weight | wgt% | rshares | pct | time |
---|---|---|---|---|---|
team | 0 | 85,746,081,870 | 10% | ||
happyberrysboy | 0 | 64,704,429,134 | 100% | ||
jhy2246 | 0 | 17,372,556,535 | 10% | ||
sonki999 | 0 | 253,549,948,606 | 20% | ||
stylegold | 0 | 3,098,897,863 | 100% | ||
virus707 | 0 | 1,316,714,359,545 | 6% | ||
fur2002ks | 0 | 220,567,988,533 | 13% | ||
leemikyung | 0 | 145,479,134,945 | 15% | ||
mastertri | 0 | 5,385,442,088 | 100% | ||
urobotics | 0 | 10,423,440,966 | 100% | ||
codingman | 0 | 55,206,298,956 | 100% | ||
muwon123 | 0 | 517,879,516,346 | 100% | ||
onehand | 0 | 1,161,969,420 | 20% | ||
hermes-k | 0 | 52,752,182,908 | 100% | ||
wisdomandjustice | 0 | 1,237,635,876,989 | 41% | ||
anpigon | 0 | 109,117,036,080 | 100% | ||
newbijohn | 0 | 36,636,064,890 | 100% | ||
sumomo | 0 | 3,060,445,143 | 100% | ||
steeming-hot | 0 | 0 | 0.01% | ||
stimcity | 0 | 356,709,244,142 | 100% | ||
laissez-faire | 0 | 36,861,988 | 100% | ||
honeybeerbear | 0 | 21,420,323,768 | 100% | ||
dcommerce | 0 | 5,721,430,371,435 | 15% | ||
ssc-token | 0 | 1,281,987,569,035 | 24% | ||
stpeople | 0 | 868,871,507,829 | 8.76% | ||
sct.dean | 0 | 1,017,719,454 | 100% |
파이어베이스를 클라이언트에서 연결하면 `FIREBASE API KEY`가 노출되기 때문에 클라우드 functions을 사용하여 db에 접근하는 것을 권장합니다. 당연히 펑션 호출은 인증된 사용자만 호출 할 수 있어야합니다. # WHAN DEV TEAM 가즈아!!! #kr #whan #dev #kr-dev #happyberrysboy
author | anpigon |
---|---|
permlink | psglt1 |
category | whan |
json_metadata | {"tags":["whan","kr","dev","kr-dev","happyberrysboy"],"app":"steemit/0.1"} |
created | 2019-06-02 06:53:27 |
last_update | 2019-06-02 06:53:54 |
depth | 1 |
children | 0 |
last_payout | 2019-06-09 06:53:27 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 188 |
author_reputation | 17,258,940,000,931 |
root_title | "[kr-dev] Firebase 데이터베이스 프로젝트 설정" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 85,898,252 |
net_rshares | 0 |
@시리즈
author | anpigon |
---|---|
permlink | re-happyberrysboy-kr-dev-firebase-20190602t080236811z |
category | whan |
json_metadata | {"community":"busy","app":"busy/2.5.6","format":"markdown","tags":["whan"],"users":[],"links":[],"image":[]} |
created | 2019-06-02 08:02:39 |
last_update | 2019-06-02 08:02:39 |
depth | 1 |
children | 1 |
last_payout | 2019-06-09 08:02:39 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 4 |
author_reputation | 17,258,940,000,931 |
root_title | "[kr-dev] Firebase 데이터베이스 프로젝트 설정" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 85,899,743 |
net_rshares | 0 |
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>|
author | steem.apps |
---|---|
permlink | re---------re-happyberrysboy-kr-dev-firebase-20190602t080258498z |
category | whan |
json_metadata | {"app":"steem.apps/0.1","format":"markdown"} |
created | 2019-06-02 08:03:00 |
last_update | 2019-06-02 08:03:00 |
depth | 2 |
children | 0 |
last_payout | 2019-06-09 08:03:00 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 2,874 |
author_reputation | 7,218,006,883,278 |
root_title | "[kr-dev] Firebase 데이터베이스 프로젝트 설정" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 85,899,749 |
net_rshares | 0 |
캬 이렇게 많은걸 개발하고 계시군요. ㅎㅎ happyberrysboy 님 안피곤님 대단합니다. ㅋㅋ
author | urobotics |
---|---|
permlink | psjuhd |
category | whan |
json_metadata | {"tags":["whan"],"app":"steemit/0.1"} |
created | 2019-06-04 00:53:42 |
last_update | 2019-06-04 00:53:42 |
depth | 1 |
children | 0 |
last_payout | 2019-06-11 00:53:42 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 55 |
author_reputation | 14,923,860,622,500 |
root_title | "[kr-dev] Firebase 데이터베이스 프로젝트 설정" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 86,008,467 |
net_rshares | 0 |
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.
author | virus707 |
---|---|
permlink | re-kr-dev-firebase-1559473769 |
category | whan |
json_metadata | {"tags":["jjm"]} |
created | 2019-06-02 11:09:27 |
last_update | 2019-06-02 11:09:27 |
depth | 1 |
children | 0 |
last_payout | 2019-06-09 11:09:27 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 203 |
author_reputation | 557,563,606,581,756 |
root_title | "[kr-dev] Firebase 데이터베이스 프로젝트 설정" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 85,904,221 |
net_rshares | 0 |