این شروع سریع نحوه راهاندازی Firebase Cloud Messaging را در برنامههای تلفن همراه و کلاینت وب خود توضیح میدهد تا بتوانید به طور قابل اعتماد پیام ارسال کنید. برای محیط های سرور، محیط سرور شما و FCM را ببینید.
یک برنامه مشتری JavaScript Firebase Cloud Messaging را راه اندازی کنید
FCM JavaScript API به شما امکان می دهد پیام های اعلان را در برنامه های وب در حال اجرا در مرورگرهایی که از Push API پشتیبانی می کنند دریافت کنید. این شامل نسخههای مرورگر فهرستشده در این ماتریس پشتیبانی و افزونههای Chrome با استفاده از Push API میشود.
FCM SDK فقط در صفحات ارائه شده از طریق HTTPS پشتیبانی می شود. این به دلیل استفاده از کارگران سرویس است که فقط در سایت های HTTPS در دسترس هستند. اگر به یک ارائه دهنده نیاز دارید، Firebase App Hosting توصیه می شود و یک ردیف بدون هزینه برای میزبانی HTTPS در دامنه خود ارائه می دهد.
برای شروع کار با FCM JavaScript API، باید Firebase را به برنامه وب خود اضافه کنید و منطق را برای دسترسی به نشانه های ثبت نام اضافه کنید.
افزودن و مقداردهی اولیه FCM SDK
اگر قبلاً این کار را نکردهاید، Firebase JS SDK را نصب کرده و Firebase را مقداردهی اولیه کنید .
Firebase Cloud Messaging JS SDK را اضافه کنید و Firebase Cloud Messaging مقداردهی اولیه کنید:
Web
import { initializeApp } from "firebase/app"; import { getMessaging } from "firebase/messaging"; // TODO: Replace the following with your app's Firebase project configuration // See: https://firebase.google.com/docs/web/learn-more#config-object const firebaseConfig = { // ... }; // Initialize Firebase const app = initializeApp(firebaseConfig); // Initialize Firebase Cloud Messaging and get a reference to the service const messaging = getMessaging(app);
Web
import firebase from "firebase/compat/app"; import "firebase/compat/messaging"; // TODO: Replace the following with your app's Firebase project configuration // See: https://firebase.google.com/docs/web/learn-more#config-object const firebaseConfig = { // ... }; // Initialize Firebase firebase.initializeApp(firebaseConfig); // Initialize Firebase Cloud Messaging and get a reference to the service const messaging = firebase.messaging();
اگر از FCM برای وب استفاده می کنید و می خواهید به SDK 6.7.0 یا جدیدتر ارتقا دهید، باید API ثبت FCM را برای پروژه خود در Google Cloud فعال کنید. وقتی API را فعال میکنید، مطمئن شوید که با همان حساب Google که برای Firebase استفاده میکنید، وارد کنسول Cloud شدهاید و مطمئن شوید که پروژه درست را انتخاب کردهاید. پروژههای جدیدی که FCM SDK را اضافه میکنند، این API را بهطور پیشفرض فعال کردهاند.
اعتبارنامه وب را با FCM پیکربندی کنید
رابط وب FCM از اعتبارنامههای وب به نام شناسایی سرور برنامه داوطلبانه یا کلیدهای VAPID استفاده میکند تا درخواستهای ارسال را به سرویسهای فشار وب پشتیبانیشده مجاز کند. برای اشتراک برنامه خود در اعلانهای فشاری، باید یک جفت کلید را با پروژه Firebase خود مرتبط کنید. می توانید یک جفت کلید جدید ایجاد کنید یا جفت کلید موجود خود را از طریق کنسول Firebase وارد کنید.
یک جفت کلید جدید ایجاد کنید
- تب Cloud Messaging را در قسمت تنظیمات کنسول Firebase باز کنید و به بخش پیکربندی وب بروید.
- در برگه Web Push Certificates ، روی Generate Key Pair کلیک کنید. کنسول اعلامیه ای مبنی بر ایجاد جفت کلید نمایش می دهد و رشته کلید عمومی و تاریخ اضافه شده را نمایش می دهد.
یک جفت کلید موجود را وارد کنید
اگر یک جفت کلید موجود دارید که از قبل با برنامه وب خود استفاده میکنید، میتوانید آن را به FCM وارد کنید تا بتوانید از طریق APIهای FCM به نمونههای برنامه وب موجود خود دسترسی پیدا کنید. برای وارد کردن کلیدها، باید به پروژه Firebase در سطح مالک دسترسی داشته باشید. کلید عمومی و خصوصی موجود خود را در قالب کدگذاری شده امن URL base64 وارد کنید:
- تب Cloud Messaging را در قسمت تنظیمات کنسول Firebase باز کنید و به بخش پیکربندی وب بروید.
- در برگه Web Push Certificates ، متن پیوند را پیدا و انتخاب کنید: وارد کردن یک جفت کلید موجود .
- در گفتگوی وارد کردن جفت کلید ، کلیدهای عمومی و خصوصی خود را در فیلدهای مربوطه وارد کنید و روی واردات کلیک کنید. کنسول رشته کلید عمومی و تاریخ اضافه شدن را نمایش می دهد.
برای دستورالعملهایی درباره نحوه افزودن کلید به برنامه، به پیکربندی اعتبارنامههای وب در برنامه خود مراجعه کنید. برای اطلاعات بیشتر در مورد قالب کلیدها و نحوه تولید آنها، به کلیدهای سرور برنامه مراجعه کنید.
اطلاعات کاربری وب را در برنامه خود پیکربندی کنید
متد getToken(): Promise<string>
به FCM اجازه می دهد از اعتبار کلید VAPID هنگام ارسال درخواست پیام به سرویس های مختلف فشار استفاده کند. با استفاده از کلیدی که طبق دستورالعمل پیکربندی اعتبارنامه وب با FCM تولید یا وارد کردهاید، پس از بازیابی شی پیامرسان، آن را به کد خود اضافه کنید:
import { getMessaging, getToken } from "firebase/messaging";
const messaging = getMessaging();
// Add the public key generated from the console here.
getToken(messaging, {vapidKey: "BKagOny0KF_2pCJQ3m....moL0ewzQ8rZu"});
به رمز ثبت نام دسترسی پیدا کنید
هنگامی که نیاز به بازیابی رمز ثبت نام فعلی برای یک نمونه برنامه دارید، ابتدا مجوزهای اعلان را از کاربر با Notification.requestPermission()
درخواست کنید. هنگامی که همانطور که نشان داده شده فراخوانی می شود، در صورت اعطای مجوز، یک توکن برمی گرداند یا در صورت رد شدن، قول را رد می کند:
function requestPermission() { console.log('Requesting permission...'); Notification.requestPermission().then((permission) => { if (permission === 'granted') { console.log('Notification permission granted.');
FCM به فایل firebase-messaging-sw.js
نیاز دارد. مگر اینکه از قبل یک فایل firebase-messaging-sw.js
داشته باشید، یک فایل خالی با آن نام ایجاد کنید و قبل از بازیابی توکن آن را در ریشه دامنه خود قرار دهید. میتوانید بعداً در فرآیند راهاندازی مشتری، محتوای معنیداری را به فایل اضافه کنید.
برای بازیابی رمز فعلی:
Web
import { getMessaging, getToken } from "firebase/messaging"; // Get registration token. Initially this makes a network call, once retrieved // subsequent calls to getToken will return from cache. const messaging = getMessaging(); getToken(messaging, { vapidKey: '<YOUR_PUBLIC_VAPID_KEY_HERE>' }).then((currentToken) => { if (currentToken) { // Send the token to your server and update the UI if necessary // ... } else { // Show permission request UI console.log('No registration token available. Request permission to generate one.'); // ... } }).catch((err) => { console.log('An error occurred while retrieving token. ', err); // ... });
Web
// Get registration token. Initially this makes a network call, once retrieved // subsequent calls to getToken will return from cache. messaging.getToken({ vapidKey: '<YOUR_PUBLIC_VAPID_KEY_HERE>' }).then((currentToken) => { if (currentToken) { // Send the token to your server and update the UI if necessary // ... } else { // Show permission request UI console.log('No registration token available. Request permission to generate one.'); // ... } }).catch((err) => { console.log('An error occurred while retrieving token. ', err); // ... });
پس از دریافت رمز، آن را به سرور برنامه خود ارسال کنید و با استفاده از روش دلخواه خود آن را ذخیره کنید.
یک پیام اعلان آزمایشی ارسال کنید
- برنامه را روی دستگاه مورد نظر نصب و اجرا کنید. در دستگاههای اپل، باید درخواست مجوز برای دریافت اعلانهای از راه دور را بپذیرید.
- بررسی کنید که برنامه در پسزمینه دستگاه باشد.
- در کنسول Firebase، صفحه Messaging را باز کنید.
- اگر این اولین پیام شماست، ایجاد اولین کمپین خود را انتخاب کنید.
- پیامهای اعلان Firebase را انتخاب کنید و ایجاد را انتخاب کنید.
- در غیر این صورت، در تب Campaigns ، کمپین جدید و سپس Notifications را انتخاب کنید.
- متن پیام را وارد کنید
- از قسمت سمت راست گزینه Send test message را انتخاب کنید.
- در فیلد با عنوان افزودن نشانه ثبت FCM ، رمز ثبت نام خود را وارد کنید.
- تست را انتخاب کنید.
پس از انتخاب تست ، دستگاه مشتری هدف، با برنامه در پسزمینه، باید اعلان را دریافت کند.
مراحل بعدی
پس از تکمیل مراحل راه اندازی، در اینجا چند گزینه برای حرکت رو به جلو با FCM برای وب (جاوا اسکریپت) وجود دارد:
- پیام ها را در یک کلاینت جاوا اسکریپت دریافت کنید
- اولین پیام خود را به یک برنامه پس زمینه ارسال کنید
- ارسال پیام به چندین دستگاه