Firestore 是 NoSQL 文件資料庫,專為自動調整資源配置、提供高效能,以及協助輕鬆開發應用程式而打造。這是 Datastore 的最新版本,並推出多項改進功能。
由於 Firestore (Datastore 模式) 專為伺服器用途和 App Engine 最佳化,因此建議您針對主要由 App Engine 應用程式使用的資料庫,選擇 Datastore 模式。原生模式的 Firestore 最適合用於行動應用程式和即時通知。如要進一步瞭解 Firestore 模式,請參閱「選擇原生模式和 Datastore 模式」。
搭配使用 Datastore 模式與 App Engine
如要將 Datastore 模式與 App Engine 搭配使用,請按照下列步驟操作:
如果您還未建立資料庫,請先建立資料庫,並選擇 Datastore 模式的 Firestore。
您可以使用現有的 Datastore 資料庫搭配 App Engine 應用程式。這些現有的資料庫將會自動升級為 Datastore 模式的 Firestore。
如果您有新的 Python 3 應用程式,請使用 Datastore 模式用戶端程式庫與 Datastore 模式互動:
如果您打算將 Python 2 應用程式升級至 Python 3,Google 建議您先將使用 App Engine NDB 的 Python 2 應用程式移植到 Python 3,然後 遷移至 Cloud NDB。如要瞭解如何在 Python 3 中存取 App Engine NDB,請參閱「存取 Python 3 適用的 App Engine 舊版套裝組合服務」。
如需其他資源,以及從使用 App Engine NDB 的 Python 2
webapp應用程式,遷移至啟用 App Engine NDB 的對等 Python 3 Flask 應用程式的範例,請參閱 Python 3 適用的套裝服務。
設定索引
Datastore 模式會對應用程式執行的每個查詢套用索引。這些索引會隨著實體的變更一併更新,因此應用程式執行查詢時,能夠快速得到結果。
Datastore 模式會自動建立適用於簡單查詢類型的單一屬性索引。如要執行包含多個屬性的複雜查詢,您必須在應用程式的
index.yaml檔案中設定複合式索引。App Engine 開發伺服器將會更新您的
index.yaml檔案,使其包含執行測試所需的複合式索引。同樣地,在您執行測試時,Datastore 模式模擬器也會產生索引。如果您未執行本機測試,或測試並未包含複雜查詢,您也可以手動將索引新增至應用程式的
index.yaml檔案。設定資料庫權限
根據預設,您的應用程式具有讀取及寫入Google Cloud 專案中 Datastore 模式和 Firestore 資料庫的所有必要權限。
每個 App Engine 應用程式都可使用預設服務帳戶來管理這些權限,該帳戶具有與應用程式相同專案中 Datastore 模式和 Firestore 資料庫的完整讀寫權限。您可以變更預設服務帳戶的權限,但除非您另行指派具有必要權限的身分與存取權管理角色,否則應用程式可能會失去存取權。
要瞭解如何讓其他使用者、應用程式或專案存取資料庫,請參閱存取資料庫一文。
使用 Datastore 模式模擬器進行本機測試
Google Cloud CLI 包含實際工作環境 Datastore 模式環境的本機模擬器。您可以用這個模擬器在本機上開發及測試應用程式。此外,模擬器還可幫您對實際工作環境 Datastore 模式執行個體產生索引,以及刪除不需要的索引。
如果您使用 App Engine 本機開發伺服器測試應用程式,可在啟動伺服器時設定
--support_datastore_emulator=true標記,確保伺服器會使用 Datastore 模式模擬器。如果您使用 Datastore 模式模擬器,dev_appserver 會顯示以下訊息:
... Using Cloud Datastore Emulator.定價、配額與限制
Datastore 模式提供免費配額,但設有每日上限。付費帳戶享有無限的儲存空間,以及不限次數的讀取和寫入作業。詳情請參閱 Datastore 配額頁面。