Firebase 初體驗

firebase 為一款 Google 旗下的資料庫系統,不只跨足 Web,APP 也可以一起整合使用
會接觸到 firebase 是因為正好在學習 node 了解後端的部分,這就需要資料庫了,所以就來認識 firebase 了

進入 Firebase 網站創建專案

這裡因介面常常改版,所以不會截圖,但主要是進到 firebase 網站,利用 google 帳號登入,前往控制台,並新建一個專案的資料庫系統,firebase 有很多功能,但目前我用到的僅只有 database

與自己的 html 檔案相連

在自己本機的 html 檔案如果要跟 firebase 資料庫做相連的話,會取得一組 script,會長的如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<!-- The core Firebase JS SDK is always required and must be listed first -->
<script src="https://www.gstatic.com/firebasejs/8.4.1/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/8.4.1/firebase-database.js"></script>

<!-- TODO: Add SDKs for Firebase products that you want to use
https://firebase.google.com/docs/web/setup#available-libraries -->
<script src="https://www.gstatic.com/firebasejs/8.4.1/firebase-analytics.js"></script>

<script>
// Your web app's Firebase configuration
// For Firebase JS SDK v7.20.0 and later, measurementId is optional
var firebaseConfig = {
apiKey: "xxxxxxxxx",
authDomain: "xxxxxxxxx",
projectId: "xxxxxxxxx",
storageBucket: "xxxxxxxxx",
messagingSenderId: "xxxxxxxxx",
appId: "xxxxxxxxx",
measurementId: "xxxxxxxxx"
};
// Initialize Firebase
firebase.initializeApp(firebaseConfig);
firebase.analytics();
</script>

這裡 xxxxxxxxx 的部分,類似於資料庫的帳密
這裡踩到的雷,有兩部分
firebase 因改版的關係,sdk 的功能沒有全部寫在一起了,所以僅只載入 firebase-app.js 的情況下用 database 是不行的,所以 database 的 js 要另外載入
第二點就是版本要全部統一,不然也會不能運行

幫資料庫新增資料

接著可以在本機的 html 的 script 寫點東西,幫資料庫新增資料

1
firebase.database().ref().set('hello')

這個時候在資料庫內就可以看到一組字串 hello
ref() 是指在根目錄
set() 是新增一筆資料

比較重要的一點就是,最外層不能接收陣列,可以是字串或物件,但不能是陣列
舉個例子:

1
let data = [];

如果上述的方式添加到資料庫內,是會亂掉的,但資料的結構往往很複雜,這時候可以用物件格式在最外層,內層就可以採用陣列,如下:

1
2
3
4
5
6
7
8
let data = {
food: [
{
title: '',
content: ''
}
]
};

如果要修改某一筆資料,ref() 的路徑跟資料結構就要對的起來,以上面的例子來說,我想更改 food 的 title,這個時候就會寫成這樣:

1
firebase.database().ref('food/0/title').set(內容)

這樣資料庫的內容就可以被做更改了~~~