使用 FCM 和 FIAM 傳送訊息給使用者

1. 事前準備

在本程式碼研究室中,您將瞭解如何新增與使用者互動的功能,無論使用者是在前景使用應用程式,還是應用程式在背景執行,都能與使用者互動。

206c7ecece550bde.png

必要條件

課程內容

  • 將 Firebase 新增至 Android 應用程式
  • 新增 FCM 和 FIAM 依附元件
  • 傳送測試 FCM 訊息到應用程式
  • 將測試 FIAM 訊息傳送至應用程式

軟硬體需求

  • Android Studio 4.1
  • Android 裝置或模擬器

2. 開始使用

取得程式碼範例

從指令列複製 GitHub 存放區:

匯入範例應用程式

在 Android Studio 中,選取 codelab-fcm-and-fiam 目錄 ( android_studio_folder.png)。這個目錄是在上一個步驟中複製的 (依序選取「File」>「Open」>「.../codelab-fcm-and-fiam」)。

您現在應該已在 Android Studio 中開啟 FcmAndFiam 專案。如果看到 google-services.json 檔案遺失的警告,請別擔心。我們會在下一個步驟中新增這項資訊。

3. 設定 Firebase 專案和應用程式,以便使用 Firebase

建立 Firebase 專案

  1. 使用 Google 帳戶登入 Firebase 控制台
  2. 按一下按鈕建立新專案,然後輸入專案名稱 (例如 Send messages codelab)。
  3. 按一下「繼續」
  4. 如果系統提示,請詳閱並接受 Firebase 條款,然後按一下「繼續」
  5. (選用) 在 Firebase 控制台中啟用 AI 輔助功能 (稱為「Gemini in Firebase」)。
  6. 在本程式碼研究室中,您需要 Google Analytics 才能充分運用 Firebase 產品,因此請開啟 Google Analytics 選項的切換按鈕。按照畫面上的指示設定 Google Analytics。
  7. 按一下「建立專案」,等待專案佈建完成,然後按一下「繼續」

將 Firebase 新增至應用程式

  1. 在新的專案總覽畫面中,按一下 Android 圖示來啟動設定工作流程。
  2. 輸入程式碼研究室的套件名稱:com.google.firebase.codelab.fcmandfiam
  3. 新增套件名稱後,按一下「Register App then Download google-services.json」,取得 Firebase Android 設定檔,然後將 google-services.json 檔案複製到專案的 app 目錄。下載檔案後,您可以點選控制台中顯示的後續步驟的「Skip」 (這些步驟已在 build-android-start 專案中為您完成)。
  4. 將 google-services 外掛程式新增至應用程式**
    google-services 外掛程式會使用 google-services.json 檔案,設定應用程式以使用 Firebase。google-services 外掛程式依附元件和外掛程式本身應已分別新增至專案和應用程式層級的建構檔。確認下列項目:build.gradle
    buildscript {
      ...
      dependencies {
        ...
        classpath 'com.google.gms:google-services:4.3.8'
      }
    }
    
    app/build.gradle
    plugins {
      ...
      id: 'com.google.gms.google-services'
    }
    

新增依附元件

FCM 和 FIAM 需要下列依附元件。這些依附元件應已新增至應用程式層級的建構檔案。確認已新增下列依附元件:

app/build.gradle

dependencies {
  ...
  implementation platform('com.google.firebase:firebase-bom:28.4.2')
  implementation 'com.google.firebase:firebase-analytics'
  implementation 'com.google.firebase:firebase-messaging'
  implementation 'com.google.firebase:firebase-inappmessaging-display'
}

將專案與 Gradle 檔案同步

為確保應用程式可使用所有依附元件,您應在此時將專案與 Gradle 檔案同步處理。在 Android Studio 工具列中,依序選取「File」>「Sync Project with Gradle Files」

4. 記錄 ID

Firebase 雲端通訊和 Firebase 應用程式內通訊訊息都會使用 ID 將訊息傳送至應用程式。FCM 使用註冊權杖,FIAM 則使用安裝 ID。

  1. MainActivity.kt 中,將 TODO 替換為下列程式碼,記錄傳送訊息所需的 ID:
FirebaseMessaging.getInstance().token.addOnCompleteListener { regTokenTask ->
   if (regTokenTask.isSuccessful) {
       Log.d(TAG, "FCM registration token: ${regTokenTask.result}")
   } else {
       Log.e(TAG, "Unable to retrieve registration token",
           regTokenTask.exception)
   }
}
FirebaseInstallations.getInstance().id.addOnCompleteListener { installationIdTask ->
   if (installationIdTask.isSuccessful) {
       Log.d(TAG, "Firebase Installations ID: ${installationIdTask.result}")
   } else {
       Log.e(TAG, "Unable to retrieve installations ID",
           installationIdTask.exception)
   }
}
  1. 連線至 Android 裝置,然後按一下 Android Studio 工具列中的「Run」 ( execute.png)。輕觸「記錄 ID」按鈕,即可將 FCM 註冊權杖和 Firebase 安裝 ID 記錄到 logcat。輸出內容應如下所示:
D/FcmAndFiam: Firebase Installations ID: emMc5...AsJfb
  FCM registration token: emMc5LART6GV7...r0Q

5. 傳送測試 FCM 訊息

您可以透過 Firebase 控制台和 FCM REST API 傳送 FCM 訊息。在本程式碼研究室中,我們將撰寫 FCM 通知訊息,並傳送至裝置。通知訊息會顯示在系統的通知區域。透過下列方式傳送測試 FCM 訊息:

  1. 確認應用程式在背景執行 (前往主畫面)
  2. 前往 Firebase 控制台,然後在左側導覽中選取「Cloud Messaging」
  3. 選取「傳送第一則訊息」
  4. 新增訊息的標題和內文,然後按一下「傳送測試訊息」

207ced65f5245ada.png

  1. 新增 FCM 註冊權杖,然後按一下「測試」

f3556c6a8a6453fe.png

  1. 在裝置上查看顯示通知
  2. 輕觸通知即可開啟應用程式

6. 傳送測試 FIAM 訊息

Firebase 應用程式內訊息可因應各種使用者事件觸發。測試訊息會使用應用程式開啟事件觸發應用程式內訊息。如要傳送測試 FIAM 訊息,請採取下列做法:

  1. 確認應用程式在背景執行 (前往主畫面)
  2. 前往 Firebase 主控台,然後在左側導覽選單中選取「應用程式內通訊」
  3. 選取「建立第一個廣告活動」
  4. 選取頂端橫幅廣告活動,然後輸入訊息的標題和內文
  5. 按一下「在裝置上測試」

69f6ea5efff240d1.png

  1. 新增安裝 ID,然後按一下「測試」

24b101edfab47144.png

  1. 重新開啟應用程式
  2. 查看應用程式內訊息

7. 恭喜

恭喜!您已成功傳送 FCM 和 FIAM 訊息。現在您已瞭解如何與使用者互動,無論他們是在前景使用應用程式,還是應用程式在背景執行,都能與他們互動。

延伸閱讀

後續步驟

  • 在自己的 Android 應用程式中傳送訊息給使用者。

參考文件