JavaScript Firebase рдХреНрд▓рд╛рдЙрдб рд╕реЗ рдореИрд╕реЗрдЬ рд╡рд╛рд▓рд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рдРрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗрдЯ рдЕрдк рдХрд░рдирд╛

FCM JavaScript API рдХреА рдорджрдж рд╕реЗ, рдЖрдкрдХреЛ рдЙрди рд╡реЗрдм рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╕реВрдЪрдирд╛рдПрдВ рдорд┐рд▓ рд╕рдХрддреА рд╣реИрдВ рдЬреЛ Push API рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЪрд▓рддреЗ рд╣реИрдВ. рдЗрд╕рдореЗрдВ, рдЗрд╕ рд╕рд╣рд╛рдпрддрд╛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдореЗрдВ рджрд┐рдП рдЧрдП рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд╡рд░реНрд╢рди рдФрд░ Push API рдХреЗ рдЬрд╝рд░рд┐рдП Chrome рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ.

FCM SDK рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рд╕рд┐рд░реНрдлрд╝ рдЙрди рдкреЗрдЬреЛрдВ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдПрдЪрдЯреАрдЯреАрдкреАрдПрд╕ рдкрд░ рджрд┐рдЦрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ. рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реЗрд╡рд╛ рд╕рд░реНрд╡рд┐рд╕ рд╡рд░реНрдХрд░ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рддреА рд╣реИ. рдпреЗ рд╕рд┐рд░реНрдлрд╝ рдПрдЪрдЯреАрдЯреАрдкреАрдПрд╕ рд╕рд╛рдЗрдЯреЛрдВ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реЛрддреЗ рд╣реИрдВ. рдЕрдЧрд░ рдЖрдкрдХреЛ рдХрд┐рд╕реА рд╕реЗрд╡рд╛ рджреЗрдиреЗ рд╡рд╛рд▓реА рдХрдВрдкрдиреА рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ, рддреЛ Firebase Hosting рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ. рдпрд╣ рдЖрдкрдХреЗ рдбреЛрдореЗрди рдкрд░ рдПрдЪрдЯреАрдЯреАрдкреАрдПрд╕ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╢реБрд▓реНрдХ рд╡рд╛рд▓реА рд╕реЗрд╡рд╛ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рддреА рд╣реИ.

FCM JavaScript API рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╡реЗрдм рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ Firebase рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛. рд╕рд╛рде рд╣реА, рд░рдЬрд┐рд╕реНрдЯреНрд░реЗрд╢рди рдЯреЛрдХрди рдРрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЙрдЬрд┐рдХ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛.

FCM SDK рдЯреВрд▓ рдЬреЛрдбрд╝рдирд╛ рдФрд░ рдЙрд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛

  1. рдЕрдЧрд░ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ Firebase JS SDK рдЯреВрд▓ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ рдФрд░ Firebase рдХреЛ рд╢реБрд░реВ рдХрд░реЗрдВ.

  2. 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 рдпрд╛ рдЗрд╕рдХреЗ рдмрд╛рдж рдХреЗ рд╡рд░реНрд╢рди рдкрд░ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдирд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ Google Cloud Console рдореЗрдВ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП FCM Registration API рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛. рдПрдкреАрдЖрдИ рдЪрд╛рд▓реВ рдХрд░рддреЗ рд╕рдордп,рдкрдХреНрдХрд╛ рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдиреЗ Cloud Console рдореЗрдВ рдЙрд╕реА Google рдЦрд╛рддреЗ рд╕реЗ рд▓реЙрдЧ рдЗрди рдХрд┐рдпрд╛ рд╣реЛ рдЬрд┐рд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ Firebase рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ. рд╕рд╛рде рд╣реА, рдпрд╣ рднреА рдкрдХреНрдХрд╛ рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдиреЗ рд╕рд╣реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЪреБрдирд╛ рд╣реЛ. FCM рдПрд╕рдбреАрдХреЗ рдЬреЛрдбрд╝рдиреЗ рд╡рд╛рд▓реЗ рдирдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдПрдкреАрдЖрдИ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЪрд╛рд▓реВ рд╣реЛрддрд╛ рд╣реИ.

FCM рдХреА рдорджрдж рд╕реЗ рд╡реЗрдм рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛

FCM рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕, рд╡реЗрдм рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рддрд╛ рд╣реИ. рдЗрдиреНрд╣реЗрдВ "Voluntary Application Server Identification" рдпрд╛ "VAPID" рдХреБрдВрдЬрд┐рдпрд╛рдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ. рдЗрдирдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓, рд╡реЗрдм рдкреБрд╢ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕реВрдЪрдирд╛рдПрдВ рднреЗрдЬрдиреЗ рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ. рдЕрдкрдиреЗ рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдкреБрд╢ рдиреЛрдЯрд┐рдлрд╝рд┐рдХреЗрд╢рди рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЕрдкрдиреЗ Firebase рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдХреБрдВрдЬрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рдЬреЛрдбрд╝рд╛ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛. рдЖрдкрдХреЗ рдкрд╛рд╕ Firebase рдХрдВрд╕реЛрд▓ рдХреЗ рдЬрд╝рд░рд┐рдП, рдирдпрд╛ рдХреБрдВрдЬреА рдЬреЛрдбрд╝рд╛ рдЬрдирд░реЗрдЯ рдХрд░рдиреЗ рдпрд╛ рдЕрдкрдиреЗ рдореМрдЬреВрджрд╛ рдХреБрдВрдЬреА рдЬреЛрдбрд╝реЗ рдХреЛ рдЗрдВрдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реЛрддрд╛ рд╣реИ.

рдХреБрдВрдЬреА рдХреЗ рдирдП рдЬреЛрдбрд╝реЗ рдХреЛ рдЬрдирд░реЗрдЯ рдХрд░рдирд╛

  1. Firebase рдХрдВрд╕реЛрд▓ рдХреЗ рд╕реЗрдЯрд┐рдВрдЧ рдкреИрдирд▓ рдореЗрдВ рдореМрдЬреВрдж Cloud Messaging рдЯреИрдм рдЦреЛрд▓реЗрдВ. рдЗрд╕рдХреЗ рдмрд╛рдж, рд╡реЗрдм рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗрдХреНрд╢рди рдкрд░ рдЬрд╛рдПрдВ.
  2. рд╡реЗрдм рдкреБрд╢ рд╕рд░реНрдЯрд┐рдлрд╝рд┐рдХреЗрдЯ рдЯреИрдм рдореЗрдВ рдЬрд╛рдХрд░, рдХреБрдВрдЬреА рдХрд╛ рдЬреЛрдбрд╝рд╛ рдЬрдирд░реЗрдЯ рдХрд░реЗрдВ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ. рдХрдВрд╕реЛрд▓ рдореЗрдВ рдПрдХ рд╕реВрдЪрдирд╛ рджрд┐рдЦрддреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдмрддрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреБрдВрдЬреА рдХрд╛ рдЬреЛрдбрд╝рд╛ рдЬрдирд░реЗрдЯ рд╣реЛ рдЧрдпрд╛ рд╣реИ. рд╕рд╛рде рд╣реА, рдЗрд╕рдореЗрдВ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкрд╛рд╕рдХреЛрдб рд╕реНрдЯреНрд░рд┐рдВрдЧ рдФрд░ рдЙрд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреА рддрд╛рд░реАрдЦ рджрд┐рдЦрддреА рд╣реИ.

рдХрд┐рд╕реА рдореМрдЬреВрджрд╛ рдкрд╛рд╕рдХреЛрдб рдХреЛ рдЗрдВрдкреЛрд░реНрдЯ рдХрд░рдирд╛

рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рдХреЛрдИ рдРрд╕рд╛ рдХреБрдВрдЬреА рдЬреЛрдбрд╝рд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рд╡реЗрдм рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рддреЛ рдЙрд╕реЗ FCM рдореЗрдВ рдЗрдВрдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ. рдЗрд╕рд╕реЗ FCM API рдХреЗ рдЬрд╝рд░рд┐рдП, рдЕрдкрдиреЗ рдореМрдЬреВрджрд╛ рд╡реЗрдм рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрд╕реНрдЯреЗрдВрд╕ рддрдХ рдкрд╣реБрдВрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ. рдХреБрдВрдЬрд┐рдпрд╛рдВ рдЗрдВрдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЗ рдкрд╛рд╕ Firebase рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдорд╛рд▓рд┐рдХ рд▓реЗрд╡рд▓ рдХрд╛ рдРрдХреНрд╕реЗрд╕ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП. рдЕрдкрдиреА рдореМрдЬреВрджрд╛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдФрд░ рдирд┐рдЬреА рдХреБрдВрдЬреА рдХреЛ Base64 рдпреВрдЖрд░рдПрд▓ рд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдПрдиреНрдХреЛрдб рдХрд┐рдП рдЧрдП рдлрд╝реЙрд░реНрдо рдореЗрдВ рдЗрдВрдкреЛрд░реНрдЯ рдХрд░реЗрдВ:

  1. Firebase рдХрдВрд╕реЛрд▓ рдХреЗ рд╕реЗрдЯрд┐рдВрдЧ рдкреИрдирд▓ рдореЗрдВ рдореМрдЬреВрдж Cloud Messaging рдЯреИрдм рдЦреЛрд▓реЗрдВ. рдЗрд╕рдХреЗ рдмрд╛рдж, рд╡реЗрдм рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗрдХреНрд╢рди рдкрд░ рдЬрд╛рдПрдВ.
  2. рд╡реЗрдм рдкреБрд╢ рд╕рд░реНрдЯрд┐рдлрд╝рд┐рдХреЗрдЯ рдЯреИрдм рдореЗрдВ, рд▓рд┐рдВрдХ рдЯреЗрдХреНрд╕реНрдЯ рдвреВрдВрдвреЗрдВ рдФрд░ рдЪреБрдиреЗрдВ. рдпрд╣ рд▓рд┐рдВрдХ рдЯреЗрдХреНрд╕реНрдЯ "рдореМрдЬреВрджрд╛ рдХреБрдВрдЬреА рдХреЗ рдЬреЛрдбрд╝реЗ рдХреЛ рдЗрдВрдкреЛрд░реНрдЯ рдХрд░реЗрдВ" рд╣реИ.
  3. рдХреА рдХрд╛ рдЬреЛрдбрд╝рд╛ рдЗрдВрдкреЛрд░реНрдЯ рдХрд░реЗрдВ рдбрд╛рдпрд▓реЙрдЧ рдмреЙрдХреНрд╕ рдореЗрдВ, рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдФрд░ рдирд┐рдЬреА рдкрд╛рд╕рдХреЛрдб рдХреЛ рд╕рдВрдмрдВрдзрд┐рдд рдлрд╝реАрд▓реНрдб рдореЗрдВ рдбрд╛рд▓реЗрдВ. рдЗрд╕рдХреЗ рдмрд╛рдж, рдЗрдВрдкреЛрд░реНрдЯ рдХрд░реЗрдВ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ. рдХрдВрд╕реЛрд▓ рдореЗрдВ, рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдФрд░ рдЙрд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреА рддрд╛рд░реАрдЦ рджрд┐рдЦрддреА рд╣реИ.

рдЕрдкрдиреЗ рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдХреБрдВрдЬреА рдЬреЛрдбрд╝рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдкрдиреЗ рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╡реЗрдм рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд▓реЗрдЦ рдкрдврд╝реЗрдВ. рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рдлрд╝реЙрд░реНрдореИрдЯ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЬрдирд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╝реНрдпрд╛рджрд╛ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП, рдРрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рдХреА рдХреБрдВрдЬрд┐рдпрд╛рдВ рд▓реЗрдЦ рдкрдврд╝реЗрдВ.

рдЕрдкрдиреЗ рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╡реЗрдм рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛

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

рдЯреЛрдХрди рдорд┐рд▓рдиреЗ рдХреЗ рдмрд╛рдж, рдЙрд╕реЗ рдЕрдкрдиреЗ рдРрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рдкрд░ рднреЗрдЬреЗрдВ рдФрд░ рдЕрдкрдиреА рдкрд╕рдВрдж рдХреЗ рддрд░реАрдХреЗ рд╕реЗ рд╕реЗрд╡ рдХрд░реЗрдВ.

рдЕрдЧрд▓реЗ рдЪрд░рдг

рд╕реЗрдЯрдЕрдк рдХреЗ рдЪрд░рдг рдкреВрд░реЗ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, FCM for Web (JavaScript) рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдВ рдХреБрдЫ рд╡рд┐рдХрд▓реНрдк рджрд┐рдП рдЧрдП рд╣реИрдВ: