在本快速入門課程中,您將瞭解如何在應用程式中建構 Firebase Data Connect,而不需要設定正式版 SQL 執行個體。您將學會以下內容:
- 將 Firebase Data Connect 新增至 Firebase 專案。
- 設定開發環境,包括 Visual Studio Code 擴充功能,以便與本機執行個體搭配使用。
- 接著,我們會說明如何:
- 為電影應用程式建立結構定義
- 定義應用程式中要使用的查詢和變異
- 使用本機模擬器的範例資料測試查詢和異動
- 產生強型別 SDK,並在應用程式中使用
- 部署最終結構定義、查詢和資料至雲端 (選用,需要升級至 Blaze 方案)。
選擇本機開發流程
Data Connect 提供兩種安裝開發工具和在本機工作的方式。
事前準備
如要使用本快速入門導覽課程,您需要下列項目。
- Firebase 專案。如果您尚未建立,請前往 Firebase 控制台建立。
設定開發環境
- 為本機專案建立新目錄。
在您建立的新目錄中執行下列指令。
curl -sL https://firebase.tools/dataconnect | bash
這個指令碼會嘗試為您設定開發環境,並啟動瀏覽器式 IDE。這個 IDE 提供工具,包括預先內含的 VS Code 擴充功能,可協助您管理結構定義,並定義應用程式要使用的查詢和變異,以及產生強型類型的 SDK。
alias dataconnect='curl -sL https://firebase.tools/dataconnect | bash'
設定專案目錄
如要設定本機專案,請初始化專案目錄。在 IDE 視窗的左側面板中,按一下 Firebase 圖示,開啟 Data Connect VS Code 擴充功能 UI:
- 點選「使用 Google 帳戶登入」按鈕。
- 按一下「連結 Firebase 專案」按鈕,然後選取您先前在控制台中建立的專案。
- 按一下「Run firebase init」按鈕。
按一下「Start emulators」按鈕。
建立結構定義
在 Firebase 專案目錄的 /dataconnect/schema/schema.gql
檔案中,開始定義關於電影的 GraphQL 結構定義。
電影
在 Data Connect 中,GraphQL 欄位會對應至資料欄。電影有 id
、title
、imageUrl
和 genre
。Data Connect 可識別原始資料類型:String
和 UUID
。
複製下列程式碼片段,或取消註解檔案中的對應行。
# By default, a UUID id key will be created by default as primary key.
# If you want to specify a primary key, say title, which you can do through
# the @table(key: "title") directive
type Movie @table {
id: UUID! @default(expr: "uuidV4()")
title: String!
imageUrl: String!
genre: String
}
MovieMetadata
複製下列程式碼片段,或取消註解檔案中的對應行。
# Movie - MovieMetadata is a one-to-one relationship
type MovieMetadata @table {
# This time, we omit adding a primary key because
# you can rely on Data Connect to manage it.
# @unique indicates a 1-1 relationship
movie: Movie! @unique
# movieId: UUID <- this is created by the above reference
rating: Float
releaseYear: Int
description: String
}
請注意,movie
欄位會對應至 Movie
類型。Data Connect 瞭解這是 Movie
與 MovieMetadata
之間的關係,並會為您管理這項關係。
在表格中新增資料
在 IDE 編輯器面板中,您會在 /dataconnect/schema/schema.gql
的 GraphQL 類型上方看到 CodeLens 按鈕。您可以使用「Add data」和「Run (Local)」按鈕,將資料新增至本機資料庫。
如要在 Movie
和 MovieMetadata
表格中新增記錄,請按照下列步驟操作:
- 在
schema.gql
中,按一下Movie
類型宣告上方的「Add data」按鈕。
- 在產生的
Movie_insert.gql
檔案中,為三個欄位硬式編碼資料。 - 按一下「Run (Local)」按鈕。
- 重複上述步驟,在
MovieMetadata
資料表中新增記錄,並在movieId
欄位中提供電影的id
,如產生的MovieMetadata_insert
變異顯示。
如要快速驗證資料是否已新增,請按照下列步驟操作:
- 回到
schema.gql
,按一下Movie
類型宣告上方的「Read data」按鈕。 - 在產生的
Movie_read.gql
檔案中,按一下「Run (Local)」按鈕執行查詢。
定義查詢
接下來是精彩的部分:讓我們在應用程式中定義所需的查詢。開發人員通常習慣編寫 SQL 查詢,而非 GraphQL 查詢,因此一開始可能會覺得有點不同。
不過,GraphQL 比原始 SQL 更精簡,且具有類型安全性。我們的 VS Code 擴充功能可讓開發體驗更輕鬆。
開始編輯 /dataconnect/connector/queries.gql
檔案。如要取得所有電影,請使用類似以下的查詢。
# File `/dataconnect/connector/queries.gql`
# @auth() directives control who can call each operation.
# Anyone should be able to list all movies, so the auth level is set to PUBLIC
query ListMovies @auth(level: PUBLIC) {
movies {
id
title
imageUrl
genre
}
}
使用附近的 CodeLens 按鈕執行查詢。
這裡有個非常實用的功能,就是可以將資料庫的關係視為圖表。由於 MovieMetadata
記錄含有參照電影的 movie
欄位,您可以巢狀進入該欄位,並取得電影資訊。請嘗試將產生的類型 movieMetadata_on_movie
新增至 ListMovies
查詢。
query ListMovies @auth(level: PUBLIC) {
movies {
id
title
imageUrl
genre
movieMetadata_on_movie {
rating
}
}
}
產生 SDK 並在應用程式中使用
在 IDE 左側面板中,按一下 Firebase 圖示,開啟 Data Connect VS Code 擴充功能 UI:
- 按一下「Add SDK to app」按鈕。
在隨即顯示的對話方塊中,選取包含應用程式程式碼的目錄。系統會產生 Data Connect SDK 程式碼並儲存在該目錄中。
選取應用程式平台後,SDK 程式碼會立即在所選目錄中產生。
瞭解如何使用產生的 SDK,從用戶端應用程式 (網頁、Android、iOS、Flutter) 呼叫查詢和突變。
將結構定義和查詢部署至實際工作環境
在應用程式上完成本機設定後,您可以將結構定義、資料和查詢部署到雲端。您需要 Blaze 方案專案才能設定 Cloud SQL 執行個體。
前往 Firebase 控制台的 Data Connect 專區,建立 Cloud SQL 免費試用版。
在 IDE 整合的 Terminal 中,執行
firebase init dataconnect
,然後選取您剛在控制台中建立的區域/服務 ID。當系統提示「File dataconnect/dataconnect.yaml already exists, Overwrite?」時,請選取「Y」。
在 IDE 視窗的 VS Code 擴充功能 UI 中,按一下「Deploy to production」按鈕。
部署完成後,請前往 Firebase 控制台,確認結構定義、作業和資料已上傳至雲端。您應該可以查看結構定義,並在控制台中執行作業。Cloud SQL for PostgreSQL 執行個體會更新為最終部署產生的結構定義和資料。
後續步驟
查看已部署的專案,並探索更多工具:
- 在 Firebase 控制台中,將資料新增至資料庫、檢查及修改結構定義,並監控 Data Connect 服務。
如需更多資訊,請參閱說明文件。舉例來說,您已完成快速入門導覽課程:
- 進一步瞭解結構定義、查詢和變異式開發
- 瞭解如何針對網頁、Android、iOS 和 Flutter 產生用戶端 SDK,以及從用戶端程式碼呼叫查詢和突變。