Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

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

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

ตั้งค่า SDK

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

ก่อนจะเริ่ม

  • ติดตั้งหรือปรับปรุง Android สตูดิโอ กับรุ่นใหม่ล่าสุดของ

  • ตรวจสอบให้แน่ใจว่าโครงการของคุณตรงตามข้อกำหนดเหล่านี้:

    • เป้าหมาย API ระดับ 16 (Jelly Bean) หรือสูงกว่า
    • ใช้ Android 4.1 หรือสูงกว่า
    • ใช้ Jetpack (AndroidX) ซึ่งรวมถึงการประชุมความต้องการรุ่นเหล่านี้:
      • com.android.tools.build:gradle v3.2.1 หรือในภายหลัง
      • compileSdkVersion 28 หรือในภายหลัง
  • ตั้งค่าอุปกรณ์ทางกายภาพหรือใช้ โปรแกรมจำลอง การทำงานของแอป
    โปรดทราบว่า Firebase SDKs กับการพึ่งพาบริการ Google Play ของคุณ ต้องใช้อุปกรณ์หรือโปรแกรมจำลองจะมีบริการ Google Play ติดตั้ง

  • ลงชื่อเข้าใช้ Firebase ใช้บัญชี Google ของคุณ

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

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

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

ลงทะเบียนแอปของคุณด้วย Firebase

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

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

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

  3. ใส่ชื่อแพคเกจของแอปใน Android ฟิลด์ชื่อแพคเกจ

  4. (อุปกรณ์เสริม) ป้อนข้อมูลตรวจสอบอื่น ๆ : ชื่อเล่น App และหนังสือรับรองการลงนาม Debug SHA-1

  5. คลิกแอปสมัครสมาชิก

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

  1. เพิ่มไฟล์การกำหนดค่า Firebase Android ในแอปของคุณ:

    1. คลิกดาวน์โหลด google-services.json ที่จะได้รับไฟล์ config ของคุณ Firebase Android ( google-services.json )

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

  2. ต้องการเปิดใช้งานผลิตภัณฑ์ Firebase ใน app ของคุณเพิ่ม google-บริการปลั๊กอิน ไปยังไฟล์ Gradle ของคุณ

    1. ในระดับรากของคุณ (ระดับโครงการ) ไฟล์ Gradle ( build.gradle ), เพิ่มกฎระเบียบที่จะรวมปลั๊กอิน Google บริการ Gradle ตรวจสอบว่าคุณมีที่เก็บ Maven ของ Google ด้วย

      buildscript {
      
        repositories {
          // Check that you have the following line (if not, add it):
          google()  // Google's Maven repository
        }
      
        dependencies {
          // ...
      
          // Add the following line:
          classpath 'com.google.gms:google-services:4.3.10'  // Google Services plugin
        }
      }
      
      allprojects {
        // ...
      
        repositories {
          // Check that you have the following line (if not, add it):
          google()  // Google's Maven repository
          // ...
        }
      }
      
    2. ในโมดูลของคุณ (app ระดับ) ไฟล์ Gradle (ปกติ app/build.gradle ) ใช้ปลั๊กอิน Google บริการ Gradle:

      apply plugin: 'com.android.application'
      // Add the following line:
      apply plugin: 'com.google.gms.google-services'  // Google Services plugin
      
      android {
        // ...
      }
      

เพิ่ม Firebase SDK ให้กับแอปของคุณ

  1. ใช้ Firebase Android BoM ประกาศพึ่งพาสำหรับห้องสมุด Firebase Cloud Messaging Android ในโมดูลของคุณ (app ระดับ) ไฟล์ Gradle (ปกติ app/build.gradle )

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

    Java

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:28.4.2')
    
        // Declare 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 แต่ละเวอร์ชันในบรรทัดการพึ่งพา

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

    dependencies {
        // Declare 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:22.0.0'
        implementation 'com.google.firebase:firebase-analytics:19.0.2'
    }
    

    คอตลิน+KTX

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:28.4.2')
    
        // Declare 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-ktx'
        implementation 'com.google.firebase:firebase-analytics-ktx'
    }
    

    โดยใช้ Firebase Android BoM แอปของคุณมักจะใช้รุ่นที่รองรับการห้องสมุด Firebase Android

    (ทางเลือก) ประกาศ Firebase อ้างอิงห้องสมุดโดยไม่ต้องใช้ BoM

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

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

    dependencies {
        // Declare 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-ktx:22.0.0'
        implementation 'com.google.firebase:firebase-analytics-ktx:19.0.2'
    }
    

  2. ซิงค์แอปของคุณเพื่อให้แน่ใจว่าการขึ้นต่อกันทั้งหมดมีเวอร์ชันที่จำเป็น

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

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

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

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

โทเค็นการลงทะเบียนอาจเปลี่ยนแปลงเมื่อ:

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

รับโทเค็นการลงทะเบียนปัจจุบัน

เมื่อคุณจำเป็นต้องเรียกโทเค็นปัจจุบันเรียก FirebaseMessaging.getInstance().getToken() :

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();
        }
    });

คอตลิน+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()
})

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

onNewToken ไฟโทรกลับเมื่อใดก็ตามที่โทเค็นใหม่จะถูกสร้างขึ้น

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(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);
}

คอตลิน+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)
}

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

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

  1. ติดตั้งและเรียกใช้แอปบนอุปกรณ์เป้าหมาย

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

  3. เปิด แต่งเพลงการแจ้งเตือน และเลือกการแจ้งเตือนใหม่

  4. ป้อนข้อความ

  5. ข้อความทดสอบเลือกส่ง

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

  7. คลิกทดสอบ

หลังจากที่คุณคลิกทดสอบอุปกรณ์ลูกค้าเป้าหมาย (กับ app ในพื้นหลัง) ควรได้รับการแจ้งเตือนในถาดแจ้งเตือนของระบบ

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

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

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

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

ไปไกลกว่าข้อความแจ้งเตือน

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