將 Firebase 新增至網路服務

區域 ID

REGION_ID 是 Google 根據您在建立應用程式時選取的地區所指派的縮寫代碼。此代碼不對應至國家/地區或省份,即使部分區域 ID 可能與常用的國家/地區和省份代碼相似。如果是 2020 年 2 月後建立的應用程式,App Engine 網址會包含 REGION_ID.r。如果是這段時間前建立的現有應用程式,網址可選擇是否包含地區 ID。

進一步瞭解區域 ID

將 Firebase 新增到 Google Cloud 專案、配置驗證設定,然後將 Firebase 新增到網路服務。

將 Firebase 新增到您的網路服務可以讓您驗證使用者,這樣您就可以讓每位使用者都享有個人化的體驗。

事前準備

如果您已完成本指南先前提過的所有步驟,請跳過本節。 否則,請完成下列其中一個步驟:

  • 建構 Python 3 應用程式開始,完成這個步驟之前的所有步驟。

  • 如果您已經有Google Cloud 專案,可以下載網路服務的副本以繼續操作:

    1. 使用 Git 下載範例應用程式存放區:

      git clone https://github.com/GoogleCloudPlatform/python-docs-samples
      

      您也可以下載 zip 格式的範例,然後解壓縮該檔案。

    2. 前往包含上一步驟檔案複本的目錄:

      cd python-docs-samples/appengine/standard_python3/building-an-app/building-an-app-1
      

將 Firebase 新增至 Google Cloud 專案

如要在您的網路服務中使用 Firebase 驗證,請將 Firebase 新增到 Google Cloud 專案,然後配置驗證設定。

  1. 使用 Firebase 主控台中的「新增專案」工具,將 Firebase 新增到現有 Google Cloud 專案。

    您也可以選擇使用其他名稱的 Firebase 帳戶,不必與現有 Google Cloud 專案建立關聯。

  2. Firebase 主控台中啟用驗證登入供應商。您將為這項網路服務啟用「Email/Password」(電子郵件/密碼) 與「Google」登入供應商:

    1. 依序點選「Build」>「Authentication」>「Sign-in method」

    2. 在「登入供應商」下方,選取「電子郵件/密碼」

    3. 切換「啟用」按鈕,即可使用電子郵件地址和密碼驗證,然後按一下「儲存」

  3. 如要正確驗證 Firebase,您必須授權網域重新導向 OAuth。如何授權網域:

    1. 依序選取「Build」>「Authentication」>「Settings」。

    2. 在「設定」頁面的「授權網域」下方,按一下「新增網域」

    3. 輸入您的應用程式在 App Engine 上的網域,但不要加入 http:// 前置字串:

      PROJECT_IDREGION_ID.r.appspot.com 其中,PROJECT_ID 是專案 ID。Google Cloud

將 Firebase 新增至網路服務

如要將 Firebase 新增到您的網路服務,請將 Firebase 專案的自訂程式碼片段、JavaScript 和 CSS 檔案複製到網路服務中:

  1. 前往 Firebase 主控台,選取您的專案。

  2. 在專案總覽頁面中,選取「Get started by adding Firebase to your app」(開始將 Firebase 新增至應用程式) 下方的「網頁」。如果專案中已新增應用程式,您可能不會看到這段文字,請改為依序前往「專案總覽」 >「專案設定」 > 現有應用程式的「一般」頁面,然後向下捲動並選取「新增應用程式」

  3. 應用程式註冊完成後,系統會顯示自訂的程式碼片段。複製程式碼片段的內容。如要再次查看這個程式碼片段,請前往 Firebase 應用程式的「專案設定」頁面。

  4. 完成下列步驟即可更新您的 templates/index.html 檔案:

    1. <head> 標記中新增下列程式碼:

      <script src="https://www.gstatic.com/firebasejs/ui/6.0.1/firebase-ui-auth.js"></script>
      <link type="text/css" rel="stylesheet" href="https://www.gstatic.com/firebasejs/ui/6.0.1/firebase-ui-auth.css" />
    2. <body> 標記中新增自訂程式碼片段。

      在本教學課程中,您可以將程式碼新增至主體頂端,因為 templates/index.html 中唯一的內容是 Firebase 服務範例。在正式環境中,建議您將程式碼片段加到主體底部,但請先不要使用任何 Firebase 服務。

      您的自訂程式碼看起來會類似於下方的模擬程式碼片段:

      <!-- MOCK SNIPPET: DO NOT COPY -->
      <!-- The core Firebase JS SDK is always required and must be listed first -->
      <script src="https://www.gstatic.com/firebasejs/7.14.5/firebase-app.js"></script>
      
      <!-- TODO: Add SDKs for Firebase products that you want to use
           https://firebase.google.com/docs/web/setup#available-libraries -->
      
      <script>
        var config = {
          apiKey: "<API_KEY>",
          authDomain: "<PROJECT_ID>.firebaseapp.com",
          databaseURL: "https://<DATABASE_NAME>.firebaseio.com",
          projectId: "<PROJECT_ID>",
          storageBucket: "<BUCKET>.appspot.com",
          messagingSenderId: "<SENDER_ID>",
        };
        firebase.initializeApp(config);
      </script>
      
    3. 將上述程式碼片段中的 TODO 替換成下列指令碼標記,啟用 Firebase 的驗證元件:

       <script src="https://www.gstatic.com/firebasejs/7.8.0/firebase-auth.js"></script>
       

      這些指令碼位址記錄在 Firebase UI for Web 文件中。

    4. 將其餘內容替換成下列程式碼,您稍後會在本指南中使用此程式碼顯示已驗證的使用者資料:

      <div id="firebaseui-auth-container"></div>
      
      <button id="sign-out" hidden=true>Sign Out</button>
      
      <div id="login-info" hidden=true>
        <h2>Login info:</h2>
        {% if user_data %}
          <dl>
            <dt>Name</dt><dd>{{ user_data['name'] }}</dd>
            <dt>Email</dt><dd>{{ user_data['email'] }}</dd>
            <dt>Last 10 visits</dt><dd>
      	{% for time in times %}
                <p>{{ time['timestamp'] }}</p>
              {% endfor %} </dd>
          </dl>
        {% elif error_message %}
          <p>Error: {{ error_message }}</p>
        {% endif %}
      </div>

後續步驟

現在您已將 Firebase 新增到 Google Cloud 專案和網路服務中,可以開始將程式碼新增到網路服務以驗證使用者。