Site icon MkS

「學習日誌」Cloud Firestore 基本新增、查詢、刪除初體驗 – Python

第一次接觸到 Firebase 是在一年前,想說寫個 Line_Bot 的遊戲,順便練習 Class 相關用法,不過當時選用的語言是 Javascript,所以使用的架構是 nodeJS,可惜就敗在非同步(Async)、同步(Sync),處理上令人筋疲力盡,到了最後熱忱燃燒殆盡,這次回來之後發現 Firebase 除了原先 Realtime Database 還多了 Cloud Firestore,就讓我們一探究竟吧。


前言

本篇文章會偏向比較應用層面,並不會有太多資料庫的相關說明帶入其中,並且使用 Python 程式語言進行操作。

什麼 Firebase?

Firebase 雲訊息傳遞(FCM),前身為 Google  雲端通訊(GCM),是一項針對 Android、iOS 及網路應用程式的訊息與通知的跨平台解決方案,目前可免費使用。[1] 該服務由Google擁有的Firebase公司提供。Firebase已於2014年10月21日宣布被Google收購,價格未公布。[2]Google 雲端通訊的官方網站現已指向Firebase雲訊息傳遞,視作新版Google 雲端通訊。[wiki]

Realtime Database

Firebase 的基礎服務之一,提供各式各樣的資料儲存,儲存方式比就像是 Json 的模式,從下圖簡單的範例可以粗略了解儲存的形式。

Cloud Firestore

新一代的儲存服務,具備更高性能的運作架構,但目前還是在測試階段,Cloud Firestore 與 Realtime 皆屬個體,資料互不相通,儲存的方式也略有不同,Firestore 儲存的方式為「集合->文件->集合…」。

看文字有點抽象對嗎? 下圖為無聊所寫的 Line_Bot 井字遊戲的資料庫狀態。

Firestore 操作

基礎環境設定

基礎設定包含安裝套件、設置 API_Key。

安裝套件

首先透過 pip 指令來安裝相關的 Python 套件(firebase-admingoogle-cloud-firestore)。

$ pip install firebase-admin google-cloud-firestore

獲取 Firebase API_Key

首先至 Firebase 申請專案,並且下載 API_Key,這邊的專案申請我就直接帶過了,透過連結至 Firebase 之後,點擊在「Project Overview」一旁的小齒輪,接著點選「使用者與權限」。

接著在上頭的選單中點選「服務帳戶」,即可看到下方的「產生新的私密金鑰」。

點擊之後會跳出注意事項,確認後下載 API_Key。

接著加入以下程式碼,並將 Json 路徑「’path/to/serviceAccountKey.json’」改為你自己的。

import firebase_admin 
from firebase_admin import credentials 
cred = credentials.Certificate('path/to/serviceAccountKey.json') 
default_app = firebase_admin.initialize_app(cred)

新增

新增資料的方法有兩個。

  1. 先將字典存入變數再透過 set 方法寫入到資料庫。
  2. 直接在 set 方法內傳入字典的內容寫入到資料庫。

See the gist on github.

更新

See the gist on github.

查詢

See the gist on github.

刪除

此部分需要注意的是,只能夠單一刪除「文件」,集合不能夠刪除。

See the gist on github.

如果需要刪除整個集合可以使用下列方法來進行刪除。

原理: 當一個集合底下沒有文件時,集合會自行移除,所以先查詢要刪除的集合內的所有文件名稱,再將文件一一刪除即可,代碼如下。

See the gist on github.

參考資料:

https://firebase.google.com/docs/admin/setup

https://googlecloudplatform.github.io/google-cloud-python/latest/index.html

Exit mobile version