在本機測試網頁應用程式、與他人分享變更,然後即時部署

部署至實際網站前,建議您查看及測試變更。Firebase 託管可讓您在本機查看及測試變更,並與模擬的後端專案資源互動。如果您需要團隊成員查看及測試變更,「託管」功能可以為您的網站建立可分享的臨時預覽網址。我們甚至支援 GitHub 整合,讓您透過提取要求部署。

事前準備

請完成「主機入門」頁面中列出的步驟,特別是下列工作:

  1. 安裝或更新 Firebase CLI 至最新版本。
  2. 將含有應用程式內容的本機專案目錄 (包含應用程式內容) 連結至 Firebase 專案。

您可以選擇部署應用程式的託管內容及設定,但這並非本頁面所述步驟的先決條件。

步驟 1:在本機測試

如果您要快速疊代,或想讓應用程式與模擬的後端專案資源互動,可以測試託管內容,並在本機上設定。在本機測試時,Firebase 會在本機託管的網址提供網頁應用程式。

代管功能屬於 Firebase 本機模擬器套件,可讓應用程式與模擬的託管內容與設定互動,也能選擇與「模擬」專案資源 (函式、資料庫和規則) 互動。

  1. (選用) 根據預設,本機託管的應用程式會與「實際」互動,而非「模擬」專案資源 (函式、資料庫、規則等)。如有需要,您可以選擇連結應用程式,以便使用已設定的任何「模擬」專案資源。瞭解詳情:即時資料庫 | Cloud Firestore | Cloud Functions

  2. 從本機專案目錄的根目錄中執行下列指令:

    firebase emulators:start
  3. 透過 CLI 傳回的本機網址開啟網頁應用程式 (通常為 http://localhost:5000)。

  4. 如要將本機網址所做的變更更新為修改版本,請重新整理瀏覽器。

從其他本機裝置測試

根據預設,模擬器只會回應來自 localhost 的要求。也就是說,您可以從電腦的網路瀏覽器存取代管內容,但無法透過網路上的其他裝置存取。如要透過其他本機裝置進行測試,請依照下列方式設定 firebase.json

"emulators": {
    // ...

    "hosting": {
      "port": 5000,
      "host": "0.0.0.0"
    }
  }

步驟 2:預覽並分享

如果希望其他使用者在實際上線前查看網頁應用程式的變更,可以使用預覽管道。

部署至預覽管道後,Firebase 會透過「預覽網址」提供網頁應用程式,該網址是一個可分享的臨時網址。使用預覽網址時,網頁應用程式會與所有專案資源的「實際」後端互動 (重新編寫設定中任何「固定」函式除外)。

請注意,雖然預覽網址包含隨機雜湊,因此不易猜中,但網址為公開網址。因此,任何知道網址的人都能存取該網址。

  1. 從本機專案目錄的根目錄中執行下列指令:

    firebase hosting:channel:deploy CHANNEL_ID

    CHANNEL_ID 替換為不含空格的字串 (例如 feature_mission-2-mars)。這個 ID 會用來建構與預覽管道相關聯的預覽網址。

  2. 透過 CLI 傳回的預覽網址開啟網頁應用程式。看起來會像這樣:PROJECT_ID--CHANNEL_ID-RANDOM_HASH.web.app

  3. 如要將預覽網址隨著變更更新,請再次執行相同指令。請務必在指令中指定相同的 CHANNEL_ID

瞭解如何管理預覽管道,包括如何設定頻道到期日。

Firebase 託管支援 GitHub 動作,可在您修訂提取要求時,自動建立及更新預覽網址。瞭解如何設定及使用此 GitHub 動作

步驟 3:即時部署

當您準備好與全世界分享變更時,請將「託管」內容部署至您的上線頻道。Firebase 會根據您的用途,提供幾個這個步驟選項 (請參閱以下選項)。

選項 1:從預先發布版頻道複製到直播頻道

這個選項可讓您放心部署至即時管道,其中包含您在預覽管道中測試的「確切」內容和設定。進一步瞭解複製版本

  1. 從任何目錄中執行下列指令:

    firebase hosting:clone SOURCE_SITE_ID:SOURCE_CHANNEL_ID TARGET_SITE_ID:live

    將每個預留位置替換成以下內容:

    • SOURCE_SITE_IDTARGET_SITE_ID:這些是包含管道的「託管」網站 ID。

      • 使用 Firebase 專案 ID 做為預設託管網站。
      • 您可以指定同一個 Firebase 專案或不同 Firebase 專案中的網站。
    • SOURCE_CHANNEL_ID:這是目前提供的頻道 ID。此頻道目前提供您要部署至直播頻道的版本。

      • 如果是直播頻道,請使用 live 做為頻道 ID。
  2. 查看變更 (下一步)。

選項 2:從本機專案目錄部署至直播頻道

即使您尚未使用預覽版本,這個選項仍可靈活調整即時管道專屬的設定或部署設定。

  1. 從本機專案目錄的根目錄中執行下列指令:

    firebase deploy --only hosting
  2. 查看變更 (下一步)。

步驟 4:查看實際網站上的變更

上述兩種方法都會將您的託管內容和設定部署至下列網站:

  • Firebase 為預設託管網站和其他任何託管網站佈建的子網域:
    SITE_ID.web.app (例如 PROJECT_ID.web.app)
    SITE_ID.firebaseapp.com (例如 PROJECT_ID.firebaseapp.com)

  • 已連結至代管網站的任何自訂網域

如要將部署作業限制在特定託管網站,請在 CLI 指令中指定部署目標

其他部署活動和資訊

為部署作業新增註解

您可以選擇對部署作業新增註解。這則留言會與其他部署資訊一同顯示在 Firebase 控制台的「Hosting Dashboard」(託管資訊主頁) 上。例如:

firebase deploy --only hosting -m "Deploying the best new feature ever."

新增預先部署和在指令碼部署後的工作

您可以選擇將殼層指令碼連線至 firebase deploy 指令,以執行預先部署或發布後工作。舉例來說,部署後掛鉤可通知管理員有新網站內容部署的情況。詳情請參閱 Firebase CLI 說明文件

快取部署的內容

當收到靜態內容的要求時,Firebase 託管會自動在 CDN 上快取內容。如果您重新部署網站內容,Firebase 會自動清除 CDN 中所有快取的靜態內容,讓新的要求收到新的內容。

請注意,您可以設定動態內容的快取

透過 HTTPS 提供

確認所有未託管於 Firebase 託管的外部資源都是透過 SSL (HTTPS) 載入,包括任何外部指令碼。多數瀏覽器不允許使用者載入「混合內容」(SSL 和非 SSL 流量)。

刪除檔案

在 Firebase 託管中,如果想從已部署的網站中刪除所選檔案,主要的方法就是在本機刪除這些檔案,然後重新部署。

後續步驟