Google 致力于为黑人社区推动种族平等。查看具体举措
本頁面由 Cloud Translation API 翻譯而成。
Switch to English

本地測試,共享更改,然後實時部署

在部署到實時站點之前,您需要查看並測試您的更改。 Firebase Hosting使您可以在本地查看和測試更改,並與模擬的後端項目資源進行交互。如果您需要隊友查看和測試您的更改,託管可以為您的站點創建可共享的臨時預覽URL。我們甚至支持GitHub集成,以通過拉取請求進行部署。

在你開始之前

完成“託管入門”頁面上列出的步驟,尤其是以下任務:

  1. 將Firebase CLI安裝或更新到最新版本。
  2. 將本地項目目錄(包含應用程序的內容)連接到Firebase項目。

您可以選擇部署應用程序的託管內容和配置,但這不是此頁面上步驟的前提。

第1步:本地測試

如果您要進行快速迭代,或者希望您的應用程序與模擬的後端項目資源進行交互,則可以在本地測試託管內容和配置。在本地進行測試時,Firebase會在本地託管的URL上為您的Web應用提供服務。

託管是Firebase Local Emulator Suite的一部分, Firebase Local Emulator Suite使您的應用程序可以與仿真的託管內容和配置以及可選的仿真項目資源(函數,數據庫和規則)進行交互。請注意,本地仿真器套件尚不支持仿真的雲存儲。

  1. (可選)默認情況下,您本地託管的應用將與真實的而非仿真的項目資源(函數,數據庫,規則等)進行交互。您可以選擇連接您的應用程序,以使用您配置的任何模擬項目資源。了解更多: 實時數據庫| Cloud Firestore |雲功能

  2. 在本地項目目錄的根目錄中,運行以下命令:

    firebase emulators:start
  3. 在CLI返回的本地URL(通常為http://localhost:5000 )上打開Web應用程序。

  4. 要使用更改更新本地URL,請刷新瀏覽器。

從其他本地設備進行測試

默認情況下,仿真器僅響應來自localhost請求。這意味著您將能夠從計算機的Web瀏覽器訪問託管內容,但不能從網絡上的其他設備訪問託管內容。如果您想從其他本地設備進行測試,請像下面這樣配置firebase.json

"emulators": {
    // ...

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

步驟2:預覽並分享

如果希望其他人在上線之前查看對Web應用程序的更改,則可以使用預覽頻道。

部署到預覽頻道後,Firebase會通過“預覽URL”(一個可共享的臨時URL)為您的Web應用提供服務。使用預覽URL時,您的Web應用程序將與所有項目資源的真實後端進行交互。

請注意,儘管預覽URL難以猜測(因為它們包含隨機散列),但是它們是公共的。因此,任何知道URL的人都可以訪問它。

  1. 在本地項目目錄的根目錄中,運行以下命令:

    firebase hosting:channel:deploy CHANNEL_ID

    CHANNEL_ID替換為沒有空格的字符串(例如, feature_mission-2-mars )。此ID將用於構造與預覽頻道關聯的預覽URL。

  2. 在CLI返回的預覽URL上打開Web應用程序。它看起來像這樣: PROJECT_ID -- CHANNEL_ID - RANDOM_HASH .web.app

  3. 要使用更改來更新預覽URL,請再次運行相同的命令。確保在命令中指定相同的CHANNEL_ID

了解有關管理預覽頻道的信息,包括如何設置頻道的到期時間。

Firebase Hosting支持GitHub Action,當您對拉取請求提交更改時,它會自動創建和更新預覽URL。了解如何設置和使用此GitHub Action

步驟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 :這是當前正在提供要部署到實時頻道的版本的頻道的標識符。

      • 對於直播頻道,請使用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控制台的“主機”儀表板上。例如:

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

添加部署前和部署後腳本任務

您可以選擇將Shell腳本連接到firebase deploy命令,以執行部署前或部署後任務。例如,部署後掛鉤可以通知管理員新的站點內容部署。有關更多詳細信息,請參閱Firebase CLI文檔

緩存已部署的內容

當請求靜態內容時,Firebase Hosting會自動將內容緩存在CDN上。如果您重新部署網站的內容,Firebase會自動清除CDN上所有緩存的靜態內容,以便新請求接收到您的新內容。

請注意,您可以配置動態內容緩存

通過HTTPS服務

確保未通過Firebase Hosting託管的所有外部資源都通過SSL(HTTPS)加載,包括所有外部腳本。大多數瀏覽器不允許用戶加載“混合內容”(SSL和非SSL通信)。

下一步