ในการเริ่มต้นใช้งาน 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 ที่ต้องพึ่งพาบริการ Google Play จำเป็นต้องมีอุปกรณ์หรือโปรแกรมจำลองติดตั้งบริการ Google Playลงชื่อเข้าใช้ Firebase โดยใช้บัญชี Google ของคุณ
หากคุณยังไม่มีโปรเจ็กต์ Android และเพียงต้องการลองใช้ผลิตภัณฑ์ Firebase คุณสามารถดาวน์โหลดหนึ่งใน ตัวอย่างการเริ่มต้นอย่างรวดเร็ว ของเรา
สร้างโปรเจ็กต์ Firebase
ก่อนที่คุณจะเพิ่ม Firebase ลงในแอป Android ได้ คุณต้องสร้างโปรเจ็กต์ Firebase เพื่อเชื่อมต่อกับแอป Android ก่อน ไปที่ ทำความเข้าใจโปรเจ็กต์ Firebase เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับโปรเจ็กต์ Firebase
ลงทะเบียนแอปของคุณกับ Firebase
หากต้องการใช้ Firebase ในแอป Android คุณต้องลงทะเบียนแอปกับโปรเจ็กต์ Firebase การลงทะเบียนแอปของคุณมักเรียกว่า "การเพิ่ม" แอปของคุณในโครงการของคุณ
ไปที่ คอนโซล Firebase
ที่กึ่งกลางของหน้าภาพรวมโครงการ ให้คลิกไอคอน Android (
) หรือ เพิ่มแอป เพื่อเปิดขั้นตอนการตั้งค่าป้อนชื่อแพ็กเกจของแอปในช่อง ชื่อแพ็กเกจ Android
ชื่อแพ็กเกจ จะระบุแอปของคุณบนอุปกรณ์และใน Google Play Store โดยไม่ซ้ำกัน
ชื่อแพ็คเกจ มักเรียกว่า ID แอปพลิเคชัน
ค้นหาชื่อแพ็กเกจของแอปในไฟล์ Gradle ของโมดูล (ระดับแอป) ซึ่งมักจะเป็น
app/build.gradle
(ชื่อแพ็กเกจตัวอย่าง:com.yourcompany.yourproject
)โปรดทราบว่าค่าชื่อแพ็กเกจต้องตรงตามตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ และไม่สามารถเปลี่ยนแปลงได้สำหรับแอป Firebase Android นี้หลังจากที่ลงทะเบียนกับโปรเจ็กต์ Firebase ของคุณแล้ว
(ไม่บังคับ) ป้อนข้อมูลแอปอื่นๆ: ชื่อเล่นแอป และ ใบรับรองการลงนามการแก้ไขข้อบกพร่อง SHA-1
ชื่อเล่นของแอป : ตัวระบุความสะดวกสบายภายในที่คุณมองเห็นได้ในคอนโซล Firebase เท่านั้น
ใบรับรองการลงนามการแก้ไขข้อบกพร่อง SHA-1 : ต้องใช้ แฮช SHA-1 ในการตรวจสอบสิทธิ์ Firebase (เมื่อใช้ Google Sign In หรือ ลงชื่อเข้าใช้ด้วยหมายเลขโทรศัพท์ ) และ Firebase Dynamic Links
คลิกลง ทะเบียนแอป
เพิ่มไฟล์การกำหนดค่า Firebase
ดาวน์โหลดแล้วเพิ่มไฟล์การกำหนดค่า Firebase Android (
) ลงในแอปของคุณ:google-services.json คลิก ดาวน์โหลด google-services.json เพื่อรับไฟล์กำหนดค่า Firebase Android
ย้ายไฟล์กำหนดค่าของคุณไปยังไดเร็กทอรีรากของ โมดูล (ระดับแอป) ของแอปของคุณ
ไฟล์กำหนดค่า Firebase มีตัวระบุที่ไม่ซ้ำกันแต่ไม่เป็นความลับสำหรับโปรเจ็กต์ของคุณ หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับไฟล์กำหนดค่านี้ โปรดไป ที่ทำความเข้าใจโปรเจ็กต์ Firebase
คุณสามารถดาวน์โหลด ไฟล์การกำหนดค่า Firebase อีกครั้งได้ทุกเมื่อ
ตรวจสอบให้แน่ใจว่าชื่อไฟล์กำหนดค่าไม่ได้ต่อท้ายด้วยอักขระเพิ่มเติม เช่น
(2)
หากต้องการให้ค่าในไฟล์กำหนด
เข้าถึง Firebase SDK ได้ คุณต้องมี ปลั๊กอิน Gradle บริการของ Google (google-services.json google-services
)ในไฟล์ Gradle ระดับราก (ระดับโครงการ) (
<project>/build.gradle.kts
หรือ<project>/build.gradle
) ให้เพิ่มปลั๊กอินบริการของ Google เป็นการพึ่งพา: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.0" 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.0' apply false }
ในไฟล์ 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 ลงในแอปของคุณ
ใน ไฟล์ Gradle ของโมดูล (ระดับแอป) (โดยปกติคือ
<project>/<app-module>/build.gradle.kts
หรือ<project>/<app-module>/build.gradle
) ให้เพิ่มการพึ่งพาสำหรับ Firebase Cloud ไลบรารีข้อความสำหรับ Android เราขอแนะนำให้ใช้ Firebase Android BoM เพื่อควบคุมเวอร์ชันไลบรารีเพื่อประสบการณ์ที่ดีที่สุดกับ 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:32.7.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 เวอร์ชันที่เข้ากันได้เสมอ
กำลังมองหาโมดูลไลบรารีเฉพาะของ Kotlin อยู่ใช่ไหม? เริ่มตั้งแต่ เดือนตุลาคม 2023 (Firebase BoM 32.5.0) ทั้งนักพัฒนา Kotlin และ Java สามารถพึ่งพาโมดูลไลบรารีหลักได้ (สำหรับรายละเอียด โปรดดู คำถามที่พบบ่อยเกี่ยวกับโครงการริเริ่มนี้ )(ทางเลือก) เพิ่มการพึ่งพาไลบรารี Firebase โดยไม่ ใช้ BoM
หากคุณเลือกที่จะไม่ใช้ Firebase BoM คุณต้องระบุเวอร์ชันไลบรารี Firebase แต่ละเวอร์ชันในบรรทัดการขึ้นต่อกัน
โปรดทราบว่าหากคุณใช้ไลบรารี 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:23.4.0") implementation("com.google.firebase:firebase-analytics:21.5.0") }
ซิงค์โครงการ Android ของคุณกับไฟล์ Gradle
Gradle builds ที่ใช้ปลั๊กอิน Android Gradle (AGP) v4.2 หรือเก่ากว่าจำเป็นต้องเปิดใช้งานการสนับสนุน Java 8 มิฉะนั้น โปรเจ็กต์ Android เหล่านี้จะล้มเหลวในการสร้างเมื่อเพิ่ม Firebase SDK
หากต้องการแก้ไขความล้มเหลวของบิลด์นี้ คุณสามารถทำตามหนึ่งในสองตัวเลือก:
- เพิ่ม
compileOptions
ที่ระบุไว้จากข้อความแสดงข้อผิดพลาดลงในไฟล์build.gradle.kts
หรือbuild.gradle
ระดับแอป ของคุณ - เพิ่ม
minSdk
สำหรับโปรเจ็กต์ Android ของคุณเป็น 26 ขึ้นไป
เรียนรู้เพิ่มเติมเกี่ยวกับความล้มเหลวของบิลด์นี้ใน คำถามที่พบบ่อยนี้
- เพิ่ม
เข้าถึงโทเค็นการลงทะเบียน
หากต้องการส่งข้อความไปยังอุปกรณ์ใดอุปกรณ์หนึ่ง คุณจำเป็นต้องทราบโทเค็นการลงทะเบียนของอุปกรณ์นั้น เนื่องจากคุณจะต้องป้อนโทเค็นในช่องในคอนโซลการแจ้งเตือนเพื่อทำบทแนะนำสอนการใช้งานนี้ โปรดอย่าลืมคัดลอกโทเค็นหรือเก็บไว้อย่างปลอดภัยหลังจากที่คุณเรียกข้อมูลแล้ว
เมื่อเริ่มต้นแอปของคุณครั้งแรก 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); }
หลังจากที่คุณได้รับโทเค็นแล้ว คุณสามารถส่งไปยังเซิร์ฟเวอร์แอปของคุณและจัดเก็บโดยใช้วิธีที่คุณต้องการได้
ส่งข้อความแจ้งเตือนการทดสอบ
ติดตั้งและเรียกใช้แอปบนอุปกรณ์เป้าหมาย บนอุปกรณ์ Apple คุณจะต้องยอมรับคำขอสิทธิ์เพื่อรับการแจ้งเตือนระยะไกล
ตรวจสอบให้แน่ใจว่าแอปอยู่ในพื้นหลังบนอุปกรณ์
ในคอนโซล Firebase ให้เปิด หน้าข้อความ
หากนี่เป็นข้อความแรกของคุณ ให้เลือก สร้างแคมเปญแรกของคุณ
- เลือก ข้อความแจ้งเตือน Firebase และเลือก สร้าง
หรือบนแท็บ แคมเปญ ให้เลือก แคมเปญใหม่ จากนั้นเลือก การแจ้งเตือน
ป้อนข้อความ ฟิลด์อื่นๆ ทั้งหมดเป็นทางเลือก
เลือก ส่งข้อความทดสอบ จากบานหน้าต่างด้านขวา
ในช่องชื่อ เพิ่มโทเค็นการลงทะเบียน FCM ให้ป้อนโทเค็นการลงทะเบียนที่คุณได้รับในส่วนก่อนหน้าของคู่มือนี้
เลือก ทดสอบ
หลังจากที่คุณเลือก ทดสอบ อุปกรณ์ไคลเอนต์เป้าหมาย (ที่มีแอปอยู่เบื้องหลัง) ควรได้รับการแจ้งเตือน
หากต้องการข้อมูลเชิงลึกเกี่ยวกับการส่งข้อความไปยังแอปของคุณ โปรดดู แดชบอร์ดการรายงาน FCM ซึ่งจะบันทึกจำนวนข้อความที่ส่งและเปิดบนอุปกรณ์ Apple และ Android พร้อมด้วยข้อมูลสำหรับ "การแสดงผล" (การแจ้งเตือนที่ผู้ใช้เห็น) สำหรับแอป Android
ขั้นตอนถัดไป
ส่งข้อความไปยังแอปที่อยู่เบื้องหน้า
เมื่อคุณส่งข้อความแจ้งเตือนสำเร็จในขณะที่แอปของคุณอยู่ในพื้นหลัง โปรดดู ที่รับข้อความในแอป Android เพื่อเริ่มส่งไปยังแอปที่ทำงานอยู่เบื้องหน้า
ไปไกลกว่าข้อความแจ้งเตือน
หากต้องการก้าวไปไกลกว่าข้อความแจ้งเตือนและเพิ่มลักษณะการทำงานขั้นสูงอื่นๆ ให้กับแอปของคุณ โปรดดู: