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

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

ตั้งค่า SDK

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

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

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

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

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

  • ลงชื่อเข้าใช้ Firebase โดยใช้ ของคุณได้

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

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

คุณต้องสร้าง Firebase ก่อนจึงจะเพิ่ม Firebase ลงในแอป Android ได้ เพื่อเชื่อมต่อกับแอป Android ของคุณ ไปที่เว็บไซต์ ทำความเข้าใจโปรเจ็กต์ 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. หากต้องการทำให้ค่าในไฟล์การกำหนดค่า google-services.json เข้าถึงได้ Firebase SDK ปลั๊กอิน 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 เราขอแนะนำให้ใช้ BoM ของ Firebase Android เพื่อควบคุมการกำหนดเวอร์ชันไลบรารี

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

    dependencies {
        // Import the BoM for the Firebase platform
        implementation(platform("com.google.firebase:firebase-bom:33.1.2"))
    
        // 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 เวอร์ชันที่เข้ากันได้เสมอ

    (ทางเลือก) เพิ่มทรัพยากร Dependency ของไลบรารี 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.0.0")
        implementation("com.google.firebase:firebase-analytics:22.0.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();
        }
    });

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

Callback ของ 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 เพื่อเริ่มส่งไปยังแอปที่ทำงานอยู่เบื้องหน้า

ทำได้มากกว่าแค่ข้อความแจ้งเตือน

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