使用 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)。而是在上一步複製的目的地 (「檔案」>「開啟」> .../codelab-fcm-and-fiam)。

您現在應該會在 Android Studio 中開啟 FcmAndFiam 專案。如果您收到關於遺失 google-services.json 檔案的警告訊息,請不用擔心,這項設定會在下一個步驟中新增。

3. 建立 Firebase 控制台專案

將 Firebase 新增至專案

  1. 前往 Firebase 控制台
  2. 選取「新增專案」
  3. 請選取或輸入專案名稱。
  4. 按照 Firebase 控制台中的其餘設定步驟操作,然後按一下「建立專案」 (如果您使用現有的 Google 專案,請選取「新增 Firebase」)。
  5. 在新專案的總覽畫面中,按一下 Android 圖示以啟動設定工作流程。
  6. 輸入程式碼研究室的套件名稱:com.google.firebase.codelab.fcmandfiam

在應用程式中加入 google-services.json 檔案

新增套件名稱後,請按一下「Register App」,然後下載「google-services.json」取得 Firebase Android 設定檔,然後將 google-services.json 檔案複製到專案的 app 目錄。檔案下載完成後,您可以按一下「Skip」,進行控制台中顯示的後續步驟 (已在 build-android-start 專案中完成這些步驟)。

在應用程式中新增 google-services 外掛程式

Google 服務外掛程式會使用 google-services.json 檔案,將您的應用程式設定為使用 Firebase。Google 服務外掛程式依附元件與外掛程式本身應已分別新增至專案和應用程式層級的建構檔案。請確認下列項目:

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 工具列同步處理專案與 Gradle 檔案。

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」圖示 執行.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 控制台,然後選取左側導覽列中的「雲端通訊」
  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 應用程式中的使用者。

參考說明文件