ส่งข้อความทดสอบไปยังแอปที่อยู่เบื้องหลัง

หากต้องการเริ่มต้นใช้งาน FCM ให้สร้าง Use Case ที่ง่ายที่สุด ซึ่งก็คือการส่งข้อความการแจ้งเตือนทดสอบจาก เครื่องมือแต่งการแจ้งเตือนไปยังอุปกรณ์สำหรับพัฒนาแอปเมื่อแอปทำงานอยู่เบื้องหลังในอุปกรณ์ หน้านี้จะแสดงขั้นตอนทั้งหมดตั้งแต่การตั้งค่าไปจนถึงการยืนยัน ซึ่งอาจครอบคลุมขั้นตอนที่คุณทำไปแล้วหากคุณตั้งค่าแอปไคลเอ็นต์ Android สำหรับ FCM

ตั้งค่า SDK

ส่วนนี้จะกล่าวถึงงานที่คุณอาจทําเสร็จแล้วหากเปิดใช้ฟีเจอร์อื่นๆ ของ Firebase สําหรับแอปแล้ว

ก่อนเริ่มต้น

  • ติดตั้งหรืออัปเดต Android Studio เป็นเวอร์ชันล่าสุด

  • ตรวจสอบว่าโปรเจ็กต์เป็นไปตามข้อกำหนดต่อไปนี้ (โปรดทราบว่าผลิตภัณฑ์บางรายการอาจมีข้อกำหนดที่เข้มงวดกว่า)

    • กำหนดเป้าหมายเป็น API ระดับ 21 (Lollipop) ขึ้นไป
    • ใช้ Android 5.0 ขึ้นไป
    • ใช้ Jetpack (AndroidX) ซึ่งรวมถึงการปฏิบัติตามข้อกำหนดเวอร์ชันต่อไปนี้
      • com.android.tools.build:gradle v7.3.0 ขึ้นไป
      • compileSdkVersion 28 ขึ้นไป
  • ตั้งค่าอุปกรณ์จริงหรือใช้โปรแกรมจำลองเพื่อเรียกใช้แอป
    โปรดทราบว่า SDK ของ Firebase ที่ต้องอาศัยบริการ Google Play กำหนดให้อุปกรณ์หรือโปรแกรมจำลองต้องติดตั้งบริการ Google Play

  • ลงชื่อเข้าใช้ Firebase ด้วยบัญชี Google

หากยังไม่มีโปรเจ็กต์ Android และต้องการลองใช้ผลิตภัณฑ์ Firebase เพียงอย่างเดียว คุณสามารถดาวน์โหลดตัวอย่างการเริ่มต้นใช้งานอย่างรวดเร็วของเรา

สร้างโปรเจ็กต์ Firebase

คุณต้องสร้างโปรเจ็กต์ Firebase เพื่อเชื่อมต่อกับแอป Android ก่อนจึงจะเพิ่ม Firebase ในแอปได้ โปรดไปที่ทําความเข้าใจโปรเจ็กต์ Firebase เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับโปรเจ็กต์ Firebase

ลงทะเบียนแอปกับ Firebase

หากต้องการใช้ Firebase ในแอป Android คุณต้องลงทะเบียนแอปกับโปรเจ็กต์ Firebase การลงทะเบียนแอปมักเรียกว่า "การเพิ่ม" แอปลงในโปรเจ็กต์

  1. ไปที่คอนโซล Firebase

  2. ตรงกลางหน้าภาพรวมโปรเจ็กต์ ให้คลิกไอคอน Android () หรือเพิ่มแอปเพื่อเปิดเวิร์กโฟลว์การตั้งค่า

  3. ป้อนชื่อแพ็กเกจของแอปในช่องชื่อแพ็กเกจ Android

  4. (ไม่บังคับ) ป้อนข้อมูลอื่นๆ ของแอป ได้แก่ชื่อเล่นของแอปและใบรับรองการแก้ไขข้อบกพร่อง SHA-1

  5. คลิกลงทะเบียนแอป

เพิ่มไฟล์การกําหนดค่า Firebase

  1. ดาวน์โหลดแล้วเพิ่มไฟล์การกําหนดค่า Firebase สำหรับ Android (google-services.json) ลงในแอป

    1. คลิกดาวน์โหลด google-services.json เพื่อรับไฟล์การกําหนดค่า Firebase สำหรับ Android

    2. ย้ายไฟล์การกําหนดค่าไปยังไดเรกทอรีรากโมดูล (ระดับแอป) ของแอป

  2. หากต้องการให้ Firebase SDK เข้าถึงค่าในgoogle-services.jsonไฟล์การกําหนดค่าได้ คุณต้องมีปลั๊กอิน Gradle ของบริการ Google (google-services)

    1. ในไฟล์ Gradle ระดับรูท (ระดับโปรเจ็กต์) (<project>/build.gradle.kts หรือ <project>/build.gradle) ให้เพิ่มปลั๊กอินบริการของ Google เป็น Dependency ดังนี้

      Kotlin

      plugins {
        id("com.android.application") version "7.3.0" apply false
        // ...
      
        // Add the dependency for the Google services Gradle plugin
        id("com.google.gms.google-services") version "4.4.2" apply false
      }
      

      Groovy

      plugins {
        id 'com.android.application' version '7.3.0' apply false
        // ...
      
        // Add the dependency for the Google services Gradle plugin
        id 'com.google.gms.google-services' version '4.4.2' apply false
      }
      
    2. ในไฟล์ Gradle ของโมดูล (ระดับแอป) (โดยปกติจะเป็น <project>/<app-module>/build.gradle.kts หรือ <project>/<app-module>/build.gradle) ให้เพิ่มปลั๊กอินบริการของ Google ดังนี้

      Kotlin

      plugins {
        id("com.android.application")
      
        // Add the Google services Gradle plugin
        id("com.google.gms.google-services")
        // ...
      }
      

      Groovy

      plugins {
        id 'com.android.application'
      
        // Add the Google services Gradle plugin
        id 'com.google.gms.google-services'
        // ...
      }
      

เพิ่ม Firebase SDK ลงในแอป

  1. ในไฟล์ Gradle ของโมดูล (ระดับแอป) (โดยปกติจะเป็น <project>/<app-module>/build.gradle.kts หรือ <project>/<app-module>/build.gradle) ให้เพิ่มทรัพยากร Dependency สำหรับไลบรารี Firebase Cloud Messaging สำหรับ Android เราขอแนะนำให้ใช้ Firebase Android BoM เพื่อควบคุมการกำหนดเวอร์ชันของไลบรารี

    เราขอแนะนําให้เปิดใช้ Google Analytics ในโปรเจ็กต์ Firebase และเพิ่ม Firebase SDK สําหรับ Google Analytics ลงในแอปเพื่อให้ได้รับประสบการณ์การใช้งาน Firebase Cloud Messaging ที่ดีที่สุด

    dependencies {
        // Import the BoM for the Firebase platform
        implementation(platform("com.google.firebase:firebase-bom:33.6.0"))
    
        // Add the dependencies for the Firebase Cloud Messaging and Analytics libraries
        // When using the BoM, you don't specify versions in Firebase library dependencies
        implementation("com.google.firebase:firebase-messaging")
        implementation("com.google.firebase:firebase-analytics")
    }
    

    การใช้ Firebase Android BoM จะทำให้แอปใช้ไลบรารี Firebase Android เวอร์ชันที่เข้ากันได้อยู่เสมอ

    (วิธีอื่น)  เพิ่มไลบรารี Firebase ที่ต้องพึ่งพาโดยไม่ต้องใช้ BoM

    หากเลือกไม่ใช้ Firebase BoM คุณต้องระบุเวอร์ชันของไลบรารี Firebase แต่ละเวอร์ชันในบรรทัดของ Dependency

    โปรดทราบว่าหากคุณใช้ไลบรารี Firebase หลายรายการในแอป เราขอแนะนําอย่างยิ่งให้ใช้ BoM เพื่อจัดการเวอร์ชันของไลบรารี ซึ่งจะช่วยให้มั่นใจได้ว่าทุกเวอร์ชันจะใช้งานร่วมกันได้

    dependencies {
        // Add the dependencies for the Firebase Cloud Messaging and Analytics libraries
        // When NOT using the BoM, you must specify versions in Firebase library dependencies
        implementation("com.google.firebase:firebase-messaging:24.1.0")
        implementation("com.google.firebase:firebase-analytics:22.1.2")
    }
    
    หากกำลังมองหาโมดูลไลบรารีสำหรับ Kotlin โดยเฉพาะ ตั้งแต่เดือนตุลาคม 2023 (Firebase BoM 32.5.0) เป็นต้นไป นักพัฒนาซอฟต์แวร์ทั้ง Kotlin และ Java จะใช้โมดูลไลบรารีหลักได้ (ดูรายละเอียดได้ในคําถามที่พบบ่อยเกี่ยวกับโครงการริเริ่มนี้)

  2. ซิงค์โปรเจ็กต์ Android กับไฟล์ Gradle

เข้าถึงโทเค็นการลงทะเบียน

หากต้องการส่งข้อความไปยังอุปกรณ์ที่ต้องการ คุณต้องทราบโทเค็นการลงทะเบียนของอุปกรณ์นั้น เนื่องจากคุณจะต้องป้อนโทเค็นในช่องในคอนโซลการแจ้งเตือนเพื่อทําตามบทแนะนํานี้ให้เสร็จสมบูรณ์ โปรดคัดลอกโทเค็นหรือจัดเก็บโทเค็นอย่างปลอดภัยหลังจากดึงข้อมูลแล้ว

เมื่อเริ่มต้นใช้งานแอปครั้งแรก FCM SDK จะสร้างโทเค็นการลงทะเบียนสําหรับอินสแตนซ์แอปไคลเอ็นต์ หากต้องการกําหนดเป้าหมายอุปกรณ์เครื่องเดียวหรือสร้างกลุ่มอุปกรณ์ คุณจะต้องเข้าถึงโทเค็นนี้โดยการขยาย FirebaseMessagingService และลบล้าง onNewToken

ส่วนนี้จะอธิบายวิธีเรียกข้อมูลโทเค็นและวิธีตรวจสอบการเปลี่ยนแปลงในโทเค็น เนื่องจากโทเค็นอาจเปลี่ยนหลังจากการเริ่มต้นครั้งแรก เราขอแนะนําอย่างยิ่งให้คุณดึงข้อมูลโทเค็นการลงทะเบียนที่อัปเดตล่าสุด

โทเค็นการลงทะเบียนอาจเปลี่ยนแปลงในกรณีต่อไปนี้

  • คืนค่าแอปในอุปกรณ์เครื่องใหม่
  • ผู้ใช้ถอนการติดตั้ง/ติดตั้งแอปอีกครั้ง
  • ผู้ใช้ล้างข้อมูลแอป

เรียกข้อมูลโทเค็นการลงทะเบียนปัจจุบัน

เมื่อต้องการเรียกข้อมูลโทเค็นปัจจุบัน ให้เรียกใช้ FirebaseMessaging.getInstance().getToken() ดังนี้

Kotlin+KTX

FirebaseMessaging.getInstance().token.addOnCompleteListener(OnCompleteListener { task ->
    if (!task.isSuccessful) {
        Log.w(TAG, "Fetching FCM registration token failed", task.exception)
        return@OnCompleteListener
    }

    // Get new FCM registration token
    val token = task.result

    // Log and toast
    val msg = getString(R.string.msg_token_fmt, token)
    Log.d(TAG, msg)
    Toast.makeText(baseContext, msg, Toast.LENGTH_SHORT).show()
})

Java

FirebaseMessaging.getInstance().getToken()
    .addOnCompleteListener(new OnCompleteListener<String>() {
        @Override
        public void onComplete(@NonNull Task<String> task) {
          if (!task.isSuccessful()) {
            Log.w(TAG, "Fetching FCM registration token failed", task.getException());
            return;
          }

          // Get new FCM registration token
          String token = task.getResult();

          // Log and toast
          String msg = getString(R.string.msg_token_fmt, token);
          Log.d(TAG, msg);
          Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show();
        }
    });

ตรวจสอบการสร้างโทเค็น

ฟังก์ชันการเรียกกลับ onNewToken จะทํางานทุกครั้งที่มีการสร้างโทเค็นใหม่

Kotlin+KTX

/**
 * Called if the FCM registration token is updated. This may occur if the security of
 * the previous token had been compromised. Note that this is called when the
 * FCM registration token is initially generated so this is where you would retrieve the token.
 */
override fun onNewToken(token: String) {
    Log.d(TAG, "Refreshed token: $token")

    // If you want to send messages to this application instance or
    // manage this apps subscriptions on the server side, send the
    // FCM registration token to your app server.
    sendRegistrationToServer(token)
}

Java

/**
 * There are two scenarios when onNewToken is called:
 * 1) When a new token is generated on initial app startup
 * 2) Whenever an existing token is changed
 * Under #2, there are three scenarios when the existing token is changed:
 * A) App is restored to a new device
 * B) User uninstalls/reinstalls the app
 * C) User clears app data
 */
@Override
public void onNewToken(@NonNull String token) {
    Log.d(TAG, "Refreshed token: " + token);

    // If you want to send messages to this application instance or
    // manage this apps subscriptions on the server side, send the
    // FCM registration token to your app server.
    sendRegistrationToServer(token);
}

หลังจากได้รับโทเค็นแล้ว คุณสามารถส่งโทเค็นไปยังเซิร์ฟเวอร์แอปและจัดเก็บโดยใช้วิธีการที่ต้องการ

ส่งข้อความการแจ้งเตือนทดสอบ

  1. ติดตั้งและเรียกใช้แอปในอุปกรณ์เป้าหมาย ในอุปกรณ์ Apple คุณจะต้องยอมรับคำขอสิทธิ์เพื่อรับการแจ้งเตือนจากระยะไกล

  2. ตรวจสอบว่าแอปทำงานอยู่เบื้องหลังในอุปกรณ์

  3. ในคอนโซล Firebase ให้เปิดหน้าการรับส่งข้อความ

  4. หากนี่เป็นข้อความแรก ให้เลือกสร้างแคมเปญแรก

    1. เลือกข้อความการแจ้งเตือน Firebase แล้วเลือกสร้าง
  5. หรือเลือกแคมเปญใหม่ในแท็บแคมเปญ แล้วเลือกการแจ้งเตือน

  6. ป้อนข้อความ ช่องอื่นๆ ทั้งหมดเป็นตัวเลือก

  7. เลือกส่งข้อความทดสอบจากแผงด้านขวา

  8. ในช่องที่มีป้ายกำกับว่าเพิ่มโทเค็นการลงทะเบียน FCM ให้ป้อนโทเค็นการลงทะเบียนที่คุณได้รับในส่วนก่อนหน้าของคู่มือนี้

  9. เลือกทดสอบ

หลังจากเลือกทดสอบแล้ว อุปกรณ์ไคลเอ็นต์เป้าหมาย (ที่มีแอปทำงานอยู่เบื้องหลัง) ควรได้รับการแจ้งเตือน

ดูข้อมูลเชิงลึกเกี่ยวกับการนำส่งข้อความไปยังแอปของคุณได้ที่ หน้าแดชบอร์ดการรายงาน FCM ซึ่งจะบันทึกจำนวนข้อความที่ส่งและเปิดในอุปกรณ์ Apple และ Android รวมถึงข้อมูล "การแสดงผล" (การแจ้งเตือนที่ผู้ใช้เห็น) สําหรับแอป Android

ขั้นตอนถัดไป

ส่งข้อความไปยังแอปที่ทำงานอยู่เบื้องหน้า

เมื่อส่งข้อความแจ้งเตือนขณะที่แอปทำงานอยู่เบื้องหลังเรียบร้อยแล้ว โปรดดูหัวข้อรับข้อความในแอป Android เพื่อเริ่มต้นส่งไปยังแอปที่ทำงานอยู่เบื้องหน้า

ใช้ประโยชน์จากข้อความการแจ้งเตือนได้มากกว่า

หากต้องการดำเนินการเพิ่มเติมจากข้อความการแจ้งเตือนและเพิ่มลักษณะการทำงานขั้นสูงอื่นๆ ลงในแอป โปรดดูที่หัวข้อต่อไปนี้