iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 8
0
自我挑戰組

GAME30天系列 第 8

Firebase intro. (2/4

不會ajax也可以完成溝通

start

https://ithelp.ithome.com.tw/upload/images/20171218/20107379JSfxiySfSU.png

firebase被google買下後, 現在我們只要到 firebase 登入google帳號, 就可以開始新增專案

https://ithelp.ithome.com.tw/upload/images/20171218/20107379XtsJyUmyxM.png

建立專案後, 選擇連結web app, 畫面會自動秀出程式碼片段, 我們把他和firebase的CDN連結先貼到 index.html 底部, 像這樣

<script src="https://www.gstatic.com/firebasejs/4.8.0/firebase.js"></script>
<script>
  // Initialize Firebase
  // TODO: Replace with your project's customized code snippet
  var config = {
    apiKey: "<API_KEY>",
    authDomain: "<PROJECT_ID>.firebaseapp.com",
    databaseURL: "https://<DATABASE_NAME>.firebaseio.com",
    storageBucket: "<BUCKET>.appspot.com",
    messagingSenderId: "<SENDER_ID>",
  };
  firebase.initializeApp(config);
</script>

在左邊功能列選擇Auth, 我們先把匿名登入啟用, 方便測試

https://ithelp.ithome.com.tw/upload/images/20171218/201073799tprJIMSww.png

在左邊功能列選擇database,新增一個person欄位後,在規則那邊更改權限, 讓讀取和存入沒有限制

{
  "rules": {
    ".read": true,
    ".write": true,
  }
}

在Hello.vue測試, 先把database的實例化, ref參數為資料節點名稱, set方法存入資料, 格式當然是json

<q-btn color="red" @click="set">set something</q-btn>
set() {
    firebase.database().ref('person').set({
      jeff : {
        name: 'guest',
        age: 19
      }
    }).catch(function(error){
      console.error(error);
    });
}

回到firebase主控台, guest已經確實新增進去了

https://ithelp.ithome.com.tw/upload/images/20171218/201073798E7IAHbvYR.png

接著我們試試取資料, 新增一個button和 get method, 注意set和get都是非同步操作

<q-btn color="red" @click="get">get something</q-btn>
get() {
  firebase.database().ref('person').once('value').then(snapshot => {
    console.log(snapshot.val());
  });
}

按下按鈕, 確實得到person內的資料了

https://ithelp.ithome.com.tw/upload/images/20171218/20107379avV2Aogcm5.png

刪除資料, 就不附圖了

firebase.database().ref('person/jeff').remove()
.then(function(){
  console.log("刪除成功")
})

上一篇
Firebase intro. (1/4
下一篇
Firebase intro. (3/4
系列文
GAME30天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言