FCM JavaScript API рдХреА рдорджрдж рд╕реЗ, рдЖрдкрдХреЛ рдЙрди рд╡реЗрдм рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╕реВрдЪрдирд╛рдПрдВ рдорд┐рд▓ рд╕рдХрддреА рд╣реИрдВ рдЬреЛ Push API рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЪрд▓рддреЗ рд╣реИрдВ. рдЗрд╕рдореЗрдВ, рдЗрд╕ рд╕рд╣рд╛рдпрддрд╛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдореЗрдВ рджрд┐рдП рдЧрдП рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд╡рд░реНрд╢рди рдФрд░ Push API рдХреЗ рдЬрд╝рд░рд┐рдП Chrome рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ.
FCM SDK рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рд╕рд┐рд░реНрдлрд╝ рдЙрди рдкреЗрдЬреЛрдВ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдПрдЪрдЯреАрдЯреАрдкреАрдПрд╕ рдкрд░ рджрд┐рдЦрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ. рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реЗрд╡рд╛ рд╕рд░реНрд╡рд┐рд╕ рд╡рд░реНрдХрд░ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рддреА рд╣реИ. рдпреЗ рд╕рд┐рд░реНрдлрд╝ рдПрдЪрдЯреАрдЯреАрдкреАрдПрд╕ рд╕рд╛рдЗрдЯреЛрдВ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реЛрддреЗ рд╣реИрдВ. рдЕрдЧрд░ рдЖрдкрдХреЛ рдХрд┐рд╕реА рд╕реЗрд╡рд╛ рджреЗрдиреЗ рд╡рд╛рд▓реА рдХрдВрдкрдиреА рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ, рддреЛ Firebase Hosting рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ. рдпрд╣ рдЖрдкрдХреЗ рдбреЛрдореЗрди рдкрд░ рдПрдЪрдЯреАрдЯреАрдкреАрдПрд╕ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╢реБрд▓реНрдХ рд╡рд╛рд▓реА рд╕реЗрд╡рд╛ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рддреА рд╣реИ.
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 рдпрд╛ рдЗрд╕рдХреЗ рдмрд╛рдж рдХреЗ рд╡рд░реНрд╢рди рдкрд░ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдирд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ Google Cloud Console рдореЗрдВ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП FCM Registration API рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛. рдПрдкреАрдЖрдИ рдЪрд╛рд▓реВ рдХрд░рддреЗ рд╕рдордп,рдкрдХреНрдХрд╛ рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдиреЗ Cloud Console рдореЗрдВ рдЙрд╕реА Google рдЦрд╛рддреЗ рд╕реЗ рд▓реЙрдЧ рдЗрди рдХрд┐рдпрд╛ рд╣реЛ рдЬрд┐рд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ Firebase рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ. рд╕рд╛рде рд╣реА, рдпрд╣ рднреА рдкрдХреНрдХрд╛ рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдиреЗ рд╕рд╣реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЪреБрдирд╛ рд╣реЛ. FCM рдПрд╕рдбреАрдХреЗ рдЬреЛрдбрд╝рдиреЗ рд╡рд╛рд▓реЗ рдирдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдПрдкреАрдЖрдИ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЪрд╛рд▓реВ рд╣реЛрддрд╛ рд╣реИ.
FCM рдХреА рдорджрдж рд╕реЗ рд╡реЗрдм рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛
FCM рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕, рд╡реЗрдм рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рддрд╛ рд╣реИ. рдЗрдиреНрд╣реЗрдВ "Voluntary Application Server Identification" рдпрд╛ "VAPID" рдХреБрдВрдЬрд┐рдпрд╛рдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ. рдЗрдирдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓, рд╡реЗрдм рдкреБрд╢ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕реВрдЪрдирд╛рдПрдВ рднреЗрдЬрдиреЗ рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ. рдЕрдкрдиреЗ рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдкреБрд╢ рдиреЛрдЯрд┐рдлрд╝рд┐рдХреЗрд╢рди рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЕрдкрдиреЗ Firebase рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдХреБрдВрдЬрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рдЬреЛрдбрд╝рд╛ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛. рдЖрдкрдХреЗ рдкрд╛рд╕ Firebase рдХрдВрд╕реЛрд▓ рдХреЗ рдЬрд╝рд░рд┐рдП, рдирдпрд╛ рдХреБрдВрдЬреА рдЬреЛрдбрд╝рд╛ рдЬрдирд░реЗрдЯ рдХрд░рдиреЗ рдпрд╛ рдЕрдкрдиреЗ рдореМрдЬреВрджрд╛ рдХреБрдВрдЬреА рдЬреЛрдбрд╝реЗ рдХреЛ рдЗрдВрдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реЛрддрд╛ рд╣реИ.
рдХреБрдВрдЬреА рдХреЗ рдирдП рдЬреЛрдбрд╝реЗ рдХреЛ рдЬрдирд░реЗрдЯ рдХрд░рдирд╛
- Firebase рдХрдВрд╕реЛрд▓ рдХреЗ рд╕реЗрдЯрд┐рдВрдЧ рдкреИрдирд▓ рдореЗрдВ рдореМрдЬреВрдж Cloud Messaging рдЯреИрдм рдЦреЛрд▓реЗрдВ. рдЗрд╕рдХреЗ рдмрд╛рдж, рд╡реЗрдм рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗрдХреНрд╢рди рдкрд░ рдЬрд╛рдПрдВ.
- рд╡реЗрдм рдкреБрд╢ рд╕рд░реНрдЯрд┐рдлрд╝рд┐рдХреЗрдЯ рдЯреИрдм рдореЗрдВ рдЬрд╛рдХрд░, рдХреБрдВрдЬреА рдХрд╛ рдЬреЛрдбрд╝рд╛ рдЬрдирд░реЗрдЯ рдХрд░реЗрдВ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ. рдХрдВрд╕реЛрд▓ рдореЗрдВ рдПрдХ рд╕реВрдЪрдирд╛ рджрд┐рдЦрддреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдмрддрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреБрдВрдЬреА рдХрд╛ рдЬреЛрдбрд╝рд╛ рдЬрдирд░реЗрдЯ рд╣реЛ рдЧрдпрд╛ рд╣реИ. рд╕рд╛рде рд╣реА, рдЗрд╕рдореЗрдВ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкрд╛рд╕рдХреЛрдб рд╕реНрдЯреНрд░рд┐рдВрдЧ рдФрд░ рдЙрд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреА рддрд╛рд░реАрдЦ рджрд┐рдЦрддреА рд╣реИ.
рдХрд┐рд╕реА рдореМрдЬреВрджрд╛ рдкрд╛рд╕рдХреЛрдб рдХреЛ рдЗрдВрдкреЛрд░реНрдЯ рдХрд░рдирд╛
рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рдХреЛрдИ рдРрд╕рд╛ рдХреБрдВрдЬреА рдЬреЛрдбрд╝рд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рд╡реЗрдм рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рддреЛ рдЙрд╕реЗ FCM рдореЗрдВ рдЗрдВрдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ. рдЗрд╕рд╕реЗ FCM API рдХреЗ рдЬрд╝рд░рд┐рдП, рдЕрдкрдиреЗ рдореМрдЬреВрджрд╛ рд╡реЗрдм рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрд╕реНрдЯреЗрдВрд╕ рддрдХ рдкрд╣реБрдВрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ. рдХреБрдВрдЬрд┐рдпрд╛рдВ рдЗрдВрдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЗ рдкрд╛рд╕ Firebase рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдорд╛рд▓рд┐рдХ рд▓реЗрд╡рд▓ рдХрд╛ рдРрдХреНрд╕реЗрд╕ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП. рдЕрдкрдиреА рдореМрдЬреВрджрд╛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдФрд░ рдирд┐рдЬреА рдХреБрдВрдЬреА рдХреЛ Base64 рдпреВрдЖрд░рдПрд▓ рд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдПрдиреНрдХреЛрдб рдХрд┐рдП рдЧрдП рдлрд╝реЙрд░реНрдо рдореЗрдВ рдЗрдВрдкреЛрд░реНрдЯ рдХрд░реЗрдВ:
- Firebase рдХрдВрд╕реЛрд▓ рдХреЗ рд╕реЗрдЯрд┐рдВрдЧ рдкреИрдирд▓ рдореЗрдВ рдореМрдЬреВрдж Cloud Messaging рдЯреИрдм рдЦреЛрд▓реЗрдВ. рдЗрд╕рдХреЗ рдмрд╛рдж, рд╡реЗрдм рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗрдХреНрд╢рди рдкрд░ рдЬрд╛рдПрдВ.
- рд╡реЗрдм рдкреБрд╢ рд╕рд░реНрдЯрд┐рдлрд╝рд┐рдХреЗрдЯ рдЯреИрдм рдореЗрдВ, рд▓рд┐рдВрдХ рдЯреЗрдХреНрд╕реНрдЯ рдвреВрдВрдвреЗрдВ рдФрд░ рдЪреБрдиреЗрдВ. рдпрд╣ рд▓рд┐рдВрдХ рдЯреЗрдХреНрд╕реНрдЯ "рдореМрдЬреВрджрд╛ рдХреБрдВрдЬреА рдХреЗ рдЬреЛрдбрд╝реЗ рдХреЛ рдЗрдВрдкреЛрд░реНрдЯ рдХрд░реЗрдВ" рд╣реИ.
- рдХреА рдХрд╛ рдЬреЛрдбрд╝рд╛ рдЗрдВрдкреЛрд░реНрдЯ рдХрд░реЗрдВ рдбрд╛рдпрд▓реЙрдЧ рдмреЙрдХреНрд╕ рдореЗрдВ, рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдФрд░ рдирд┐рдЬреА рдкрд╛рд╕рдХреЛрдб рдХреЛ рд╕рдВрдмрдВрдзрд┐рдд рдлрд╝реАрд▓реНрдб рдореЗрдВ рдбрд╛рд▓реЗрдВ. рдЗрд╕рдХреЗ рдмрд╛рдж, рдЗрдВрдкреЛрд░реНрдЯ рдХрд░реЗрдВ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ. рдХрдВрд╕реЛрд▓ рдореЗрдВ, рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдФрд░ рдЙрд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреА рддрд╛рд░реАрдЦ рджрд┐рдЦрддреА рд╣реИ.
рдЕрдкрдиреЗ рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдХреБрдВрдЬреА рдЬреЛрдбрд╝рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдкрдиреЗ рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╡реЗрдм рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд▓реЗрдЦ рдкрдврд╝реЗрдВ. рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рдлрд╝реЙрд░реНрдореИрдЯ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЬрдирд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╝реНрдпрд╛рджрд╛ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП, рдРрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рдХреА рдХреБрдВрдЬрд┐рдпрд╛рдВ рд▓реЗрдЦ рдкрдврд╝реЗрдВ.
рдЕрдкрдиреЗ рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╡реЗрдм рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛
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) рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдВ рдХреБрдЫ рд╡рд┐рдХрд▓реНрдк рджрд┐рдП рдЧрдП рд╣реИрдВ:
- рдЕрдкрдиреЗ рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдореИрд╕реЗрдЬ рдкрд╛рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдЬреЛрдбрд╝реЗрдВ.
- рд╣рдорд╛рд░реЗ рдХрд┐рд╕реА рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЛ рдЖрдЬрд╝рдорд╛рдПрдВ: рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдореЗрдВ рдЪрд▓ рд░рд╣реЗ рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдкрд╣рд▓рд╛ рдореИрд╕реЗрдЬ рднреЗрдЬрдирд╛ рдпрд╛ рдПрдХ рд╕реЗ рдЬрд╝реНрдпрд╛рджрд╛ рдбрд┐рд╡рд╛рдЗрд╕реЛрдВ рдХреЛ рдореИрд╕реЗрдЬ рднреЗрдЬрдирд╛.
- GitHub рдкрд░ рдкреВрд░рд╛ рд╕реИрдВрдкрд▓ рджреЗрдЦреЗрдВ.
- JavaScript рд░реЗрдлрд╝рд░рдВрд╕ рджреЗрдЦреЗрдВ.
- рдПрдкреАрдЖрдИ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡реАрдбрд┐рдпреЛ рдореЗрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рдкреВрд░рд╛ рдмреНрдпреМрд░рд╛ рджреЗрдЦреЗрдВ.