JavaScript Firebase Cloud Messaging istemci uygulaması kurma

FCM JavaScript API, Push API'yi destekleyen tarayıcılarda çalışan web uygulamalarında bildirim mesajları almanızı sağlar. Buna, bu destek matrisinde listelenen tarayıcı sürümleri ve Push API aracılığıyla Chrome uzantıları dahildir.

FCM SDK yalnızca HTTPS üzerinden sunulan sayfalarda desteklenir. Bunun nedeni yalnızca HTTPS sitelerinde bulunan hizmet çalışanlarının kullanılmasıdır. Bir sağlayıcıya ihtiyacınız varsa Firebase Hosting önerilir ve kendi alanınızda HTTPS barındırma için ücretsiz bir katman sağlar.

FCM JavaScript API'sini kullanmaya başlamak için web uygulamanıza Firebase'i eklemeniz ve kayıt jetonlarına erişim mantığı eklemeniz gerekir.

FCM SDK'sını ekleyin ve başlatın

  1. Henüz yapmadıysanız Firebase JS SDK'yı yükleyin ve Firebase'i başlatın .

  2. Firebase Cloud Messaging JS SDK'sını ekleyin ve Firebase Cloud Messaging'i başlatın:

Web modüler API'si

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 ad alanlı API

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

Şu anda web için FCM kullanıyorsanız ve SDK 6.7.0 veya sonraki bir sürüme yükseltmek istiyorsanız Google Cloud Console'da projeniz için FCM Kayıt API'sini etkinleştirmeniz gerekir. API'yi etkinleştirdiğinizde, Firebase için kullandığınız Google hesabıyla Cloud Console'da oturum açtığınızdan ve doğru projeyi seçtiğinizden emin olun. FCM SDK'yı ekleyen yeni projelerde bu API varsayılan olarak etkindir.

FCM ile Web Kimlik Bilgilerini Yapılandırma

FCM Web arayüzü, desteklenen web push hizmetlerine gönderme isteklerini yetkilendirmek için "Gönüllü Uygulama Sunucusu Tanımlaması" veya "VAPID" anahtarları adı verilen Web kimlik bilgilerini kullanır. Uygulamanızı anlık bildirimlere abone olmak için Firebase projenizle bir çift anahtarı ilişkilendirmeniz gerekir. Firebase Konsolu aracılığıyla yeni bir anahtar çifti oluşturabilir veya mevcut anahtar çiftinizi içe aktarabilirsiniz.

Yeni bir anahtar çifti oluştur

  1. Firebase konsolunun Ayarlar bölmesinin Bulut Mesajlaşma sekmesini açın ve Web yapılandırması bölümüne gidin.
  2. Web Push sertifikaları sekmesinde Anahtar Çifti Oluştur öğesine tıklayın. Konsol, anahtar çiftinin oluşturulduğuna dair bir bildirim görüntüler ve genel anahtar dizesini ve eklenme tarihini görüntüler.

Mevcut bir anahtar çiftini içe aktarın

Halihazırda web uygulamanızla birlikte kullandığınız mevcut bir anahtar çiftiniz varsa bunu FCM'ye aktarabilir ve böylece FCM API'leri aracılığıyla mevcut web uygulaması örneklerinize ulaşabilirsiniz. Anahtarları içe aktarmak için Firebase projesine sahip düzeyinde erişiminizin olması gerekir. Mevcut genel ve özel anahtarınızı base64 URL güvenli kodlanmış biçimde içe aktarın:

  1. Firebase konsolunun Ayarlar bölmesinin Bulut Mesajlaşma sekmesini açın ve Web yapılandırması bölümüne gidin.
  2. Web Push sertifikaları sekmesinde "mevcut bir anahtar çiftini içe aktar" bağlantı metnini bulup seçin.
  3. Anahtar çiftini içe aktar iletişim kutusunda, genel ve özel anahtarlarınızı ilgili alanlara girin ve İçe Aktar 'ı tıklayın. Konsol, genel anahtar dizesini ve eklenme tarihini görüntüler.

Anahtarı uygulamanıza nasıl ekleyeceğinize ilişkin talimatlar için bkz. Uygulamanızda Web kimlik bilgilerini yapılandırma . Anahtarların biçimi ve bunların nasıl oluşturulacağı hakkında daha fazla bilgi için bkz. Uygulama sunucusu anahtarları .

Uygulamanızda Web kimlik bilgilerini yapılandırma

getToken(): Promise<string> yöntemi, FCM'nin farklı push servislerine mesaj istekleri gönderirken VAPID anahtarı kimlik bilgilerini kullanmasına olanak tanır. FCM ile Web Kimlik Bilgilerini Yapılandırma bölümündeki talimatlara göre oluşturduğunuz veya içe aktardığınız anahtarı kullanarak, mesajlaşma nesnesi alındıktan sonra kodunuza ekleyin:

import { getMessaging, getToken } from "firebase/messaging";

const messaging = getMessaging();
// Add the public key generated from the console here.
getToken(messaging, {vapidKey: "BKagOny0KF_2pCJQ3m....moL0ewzQ8rZu"});

Kayıt belirtecine erişme

Bir uygulama örneği için geçerli kayıt belirtecini almanız gerektiğinde, öncelikle Notification.requestPermission() ile kullanıcıdan bildirim izinlerini isteyin. Gösterildiği gibi çağrıldığında, izin verilirse bir belirteç döndürür veya reddedilirse söz reddedilir:

function requestPermission() {
  console.log('Requesting permission...');
  Notification.requestPermission().then((permission) => {
    if (permission === 'granted') {
      console.log('Notification permission granted.');

FCM, firebase-messaging-sw.js dosyası gerektirir. Zaten bir firebase-messaging-sw.js dosyanız yoksa, bu adda boş bir dosya oluşturun ve bir jeton almadan önce bunu alan adınızın köküne yerleştirin. Daha sonra istemci kurulum sürecinde dosyaya anlamlı içerik ekleyebilirsiniz.

Geçerli jetonu almak için:

Web modular API

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 namespaced API

// 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);
  // ...
});

Belirteci aldıktan sonra uygulama sunucunuza gönderin ve tercih ettiğiniz yöntemi kullanarak saklayın.

Sonraki adımlar

Kurulum adımlarını tamamladıktan sonra FCM for Web (JavaScript) ile ilerlemeye yönelik birkaç seçenek aşağıda verilmiştir: