{"id":110733,"date":"2025-05-27T03:03:13","date_gmt":"2025-05-26T22:33:13","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/a-quick-guide-to-push-notifications-with-expo-notifications-and-firebase-3lf4\/"},"modified":"2025-05-27T03:03:13","modified_gmt":"2025-05-26T22:33:13","slug":"a-quick-guide-to-push-notifications-with-expo-notifications-and-firebase-3lf4","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/a-quick-guide-to-push-notifications-with-expo-notifications-and-firebase-3lf4\/","title":{"rendered":"\u06cc\u06a9 \u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u0633\u0631\u06cc\u0639 \u0628\u0631\u0627\u06cc \u0641\u0634\u0627\u0631 \u062f\u0627\u062f\u0646 \u0627\u0639\u0644\u0627\u0646 \u0647\u0627 \u0628\u0627 \u0646\u0645\u0627\u06cc\u0634 \u0647\u0627\u06cc \u0646\u0645\u0627\u06cc\u0634\u06cc \u0648 Firebase"},"content":{"rendered":"<div data-article-id=\"2530174\" id=\"article-body\">\n<p>\u0627\u06cc\u0646 \u0631\u0648\u0632\u0647\u0627 \u0645\u062c\u0628\u0648\u0631 \u0634\u062f\u0645 \u0627\u0639\u0644\u0627\u0646 \u0647\u0627\u06cc \u0641\u0634\u0627\u0631 \u0631\u0627 \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u06a9\u0646\u0645 \u060c \u0648 \u0627\u0632 \u0622\u0646\u062c\u0627 \u06a9\u0647 \u0645\u0646 \u0648\u0627\u0642\u0639\u0627\u064b \u062f\u0648\u0633\u062a \u062f\u0627\u0631\u0645 \u0646\u0645\u0627\u06cc\u0634\u06af\u0627\u0647 Direction \u062f\u0631 \u062d\u0627\u0644 \u0631\u0641\u062a\u0646 \u0628\u0627\u0634\u062f \u060c \u062a\u0635\u0645\u06cc\u0645 \u06af\u0631\u0641\u062a\u0645 \u0628\u06cc\u0634\u062a\u0631 \u0628\u0647 \u0627\u06a9\u0648\u0633\u06cc\u0633\u062a\u0645 \u0622\u0646 \u062a\u06a9\u06cc\u0647 \u062f\u0647\u0645 \u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u062a\u0635\u0645\u06cc\u0645 \u06af\u0631\u0641\u062a\u0645 \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0648\u06cc\u0698\u06af\u06cc \u0627\u0632 \u0646\u0645\u0627\u06cc\u0634\u06af\u0627\u0647 \u0647\u0627\u06cc \u0646\u0645\u0627\u06cc\u0634\u06af\u0627\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u0645. \u062f\u0631 \u06a9\u0645\u0627\u0644 \u062a\u0639\u062c\u0628 \u060c \u0645\u0646 \u0647\u06cc\u0686 \u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u062e\u0648\u0628\u06cc \u062f\u0631 \u0645\u0648\u0631\u062f \u0646\u062d\u0648\u0647 \u0627\u0646\u062c\u0627\u0645 \u0622\u0646 \u067e\u06cc\u062f\u0627 \u0646\u06a9\u0631\u062f\u0645. Expo \u0631\u0627\u0647\u0646\u0645\u0627\u06cc\u06cc \u062f\u0631 \u0645\u0648\u0631\u062f \u0686\u06af\u0648\u0646\u06af\u06cc \u062a\u0646\u0638\u06cc\u0645 \u0622\u0646 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u062e\u062f\u0645\u0627\u062a \u0627\u062e\u062a\u0635\u0627\u0635\u06cc \u062e\u0648\u062f \u062f\u0627\u0631\u062f \u060c \u06a9\u0647 \u0645\u0646 \u062a\u0635\u0645\u06cc\u0645 \u06af\u0631\u0641\u062a\u0645 \u0627\u0632 \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0646\u06a9\u0646\u0645 \u062a\u0627 \u0627\u0632 \u0627\u062d\u0633\u0627\u0633 \u0642\u0641\u0644 \u0634\u062f\u0646 \u067e\u0644\u062a\u0641\u0631\u0645 \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u06a9\u0646\u0645. \u0634\u062e\u0635\u0627\u064b \u060c \u0628\u0632\u0631\u06af\u062a\u0631\u06cc\u0646 \u0645\u0632\u06cc\u062a \u0646\u0645\u0627\u06cc\u0634\u06af\u0627\u0647 \u060c \u0627\u062c\u0631\u0627\u06cc \u062f\u0633\u062a\u06cc \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u062f \u0628\u0648\u0645\u06cc \u0628\u0647 \u062d\u062f\u0627\u0642\u0644 \u0645\u06cc \u0631\u0633\u062f \u060c \u0632\u06cc\u0631\u0627 \u0647\u0631\u0686\u0647 \u06cc\u06a9 \u067e\u0631\u0648\u0698\u0647 \u0637\u0648\u0644\u0627\u0646\u06cc \u062a\u0631 \u0628\u0627\u0634\u062f \u060c \u067e\u06cc\u06af\u06cc\u0631\u06cc \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u062f\u0631 \u067e\u0631\u0648\u0646\u062f\u0647 \u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0628\u0631\u0627\u06cc \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0647\u0627\u06cc \u0645\u062a\u0639\u062f\u062f \u0633\u062e\u062a \u062a\u0631 \u0645\u06cc \u0634\u0648\u062f. \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0645\u0627 \u0627\u0632 \u0646\u0642\u0627\u0637 \u0642\u0648\u062a \u0646\u0645\u0627\u06cc\u0634\u06af\u0627\u0647 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0646\u0645\u0627\u06cc\u0634 \u0647\u0627\u06cc \u0646\u0645\u0627\u06cc\u0634\u06af\u0627\u0647 \u0628\u0631\u0627\u06cc \u062a\u0646\u0638\u06cc\u0645 \u062a\u0642\u0631\u06cc\u0628\u0627\u064b \u062a\u0645\u0627\u0645 \u06a9\u062f \u0647\u0627\u06cc \u0628\u0648\u0645\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u0648 \u0627\u0639\u0644\u0627\u0646 \u0647\u0627\u06cc \u0641\u0634\u0627\u0631 \u0631\u0627 \u062f\u0631 \u067e\u06cc\u0634 \u0632\u0645\u06cc\u0646\u0647 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u062f\u0647\u06cc\u0645 \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 \u0627\u0632 \u067e\u06cc\u0627\u0645 \u0631\u0633\u0627\u0646\u06cc Firebase \u0628\u0631\u0627\u06cc \u06af\u0648\u0634 \u062f\u0627\u062f\u0646 \u0628\u0647 \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627\u06cc \u0627\u0639\u0644\u0627\u0646 \u0646\u0627\u0634\u06cc \u0627\u0632 Firebase \u0648 \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u0627\u0639\u0644\u0627\u0646 \u0647\u0627 \u062f\u0631 \u067e\u0633 \u0632\u0645\u06cc\u0646\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>npx expo <span class=\"nb\">install <\/span>expo-notifications @react-native-firebase\/app @react-native-firebase\/messaging\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0645\u0627 \u062e\u062f\u0645\u0627\u062a Google \u0631\u0627 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u0648 \u0627\u0639\u0644\u0627\u0646 \u0647\u0627 \u0631\u0627 \u0641\u0634\u0627\u0631 \u0645\u06cc \u062f\u0647\u06cc\u0645.<br \/>\u0645\u0633\u06cc\u0631 \u067e\u0631\u0648\u0646\u062f\u0647 \u0647\u0627 \u0648 DefaultChannel \u0627\u0648\u0644\u0648\u06cc\u062a \u0645\u0646 \u0627\u0633\u062a \u0648 \u0642\u0627\u0628\u0644 \u062a\u063a\u06cc\u06cc\u0631 \u0627\u0633\u062a.<br \/>\u0627\u06af\u0631 <code>enableBackgroundRemoteNotifications<\/code> \u062f\u0631\u0633\u062a \u062a\u0646\u0638\u06cc\u0645 \u0634\u062f\u0647 \u0627\u0633\u062a \u060c \u0645\u062c\u0648\u0632\u0647\u0627\u06cc \u0644\u0627\u0632\u0645 \u0628\u0631\u0627\u06cc \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u067e\u06cc\u0627\u0645 \u0647\u0627\u06cc \u067e\u0633 \u0632\u0645\u06cc\u0646\u0647 (\u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0628\u0627\u0632 \u0627\u0633\u062a \u0627\u0645\u0627 \u062f\u0631 \u062a\u0645\u0631\u06a9\u0632 \u0646\u06cc\u0633\u062a \u06cc\u0627 \u0628\u0631\u0646\u0627\u0645\u0647 \u0628\u0633\u062a\u0647\/\u06a9\u0634\u062a\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a) \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight json\"><code><span class=\"err\">app.json<\/span><span class=\"w\">\n\n<\/span><span class=\"p\">{<\/span><span class=\"w\">\n  <\/span><span class=\"nl\">\"expo\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n    <\/span><span class=\"nl\">\"ios\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n      <\/span><span class=\"nl\">\"googleServicesFile\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\".\/assets\/GoogleService-Info.plist\"<\/span><span class=\"w\">\n    <\/span><span class=\"p\">}<\/span><span class=\"w\">\n    <\/span><span class=\"nl\">\"android\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n      <\/span><span class=\"nl\">\"googleServicesFile\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\".\/assets\/google-services.json\"<\/span><span class=\"w\">\n    <\/span><span class=\"p\">}<\/span><span class=\"w\">\n  <\/span><span class=\"p\">}<\/span><span class=\"w\">\n  <\/span><span class=\"nl\">\"plugins\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">[<\/span><span class=\"w\">\n    <\/span><span class=\"p\">[<\/span><span class=\"w\">\n      <\/span><span class=\"s2\">\"expo-notifications\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n      <\/span><span class=\"p\">{<\/span><span class=\"w\">\n        <\/span><span class=\"nl\">\"icon\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\".\/assets\/icon.png\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n        <\/span><span class=\"nl\">\"color\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"#002d2d\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n        <\/span><span class=\"nl\">\"defaultChannel\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"default\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n        <\/span><span class=\"nl\">\"enableBackgroundRemoteNotifications\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"kc\">true<\/span><span class=\"w\">\n      <\/span><span class=\"p\">}<\/span><span class=\"w\">\n    <\/span><span class=\"p\">],<\/span><span class=\"w\">\n    <\/span><span class=\"s2\">\"@react-native-firebase\/app\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n    <\/span><span class=\"s2\">\"@react-native-firebase\/messaging\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n  <\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code> npx expo prebuild\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0645\u06cc \u0628\u06cc\u0646\u06cc\u062f \u06a9\u0647 \u062a\u0645\u0627\u0645 \u0646\u0645\u0627\u062f\u0647\u0627\u06cc \u0633\u0627\u0632\u06af\u0627\u0631 Android \u0628\u0631\u0627\u06cc \u0627\u0639\u0644\u0627\u0646 \u0647\u0627 \u0627\u06cc\u062c\u0627\u062f \u0634\u062f\u0647 \u0627\u0646\u062f \u0648 \u0627\u062c\u0631\u0627\u06cc \u0648 \u0645\u062c\u0648\u0632\u0647\u0627\u06cc \u0628\u0648\u0645\u06cc \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u062a\u0639\u06cc\u06cc\u0646 \u0634\u062f\u0647 \u0627\u0633\u062a.<br \/>\u0627\u0645\u0627 \u0647\u06cc\u0686 \u0686\u06cc\u0632 \u06a9\u0627\u0645\u0644 \u0646\u06cc\u0633\u062a. \u062f\u0631 \u0627\u06cc\u0646 \u062d\u0627\u0644\u062a \u060c \u0627\u06af\u0631 \u0633\u0639\u06cc \u062f\u0631 \u0633\u0627\u062e\u062a \u062f\u0627\u0631\u06cc\u062f \u060c \u0627\u062d\u062a\u0645\u0627\u0644\u0627\u064b \u062e\u0637\u0627\u06cc\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u062f\u0627\u0634\u062a. \u0647\u0631 \u062f\u0648 \u0646\u0645\u0627\u06cc\u0634\u0646\u0627\u0645\u0647 \u0648 \u067e\u06cc\u0627\u0645 \u0631\u0633\u0627\u0646\u06cc @React-Native-Firebase\/\u067e\u06cc\u0627\u0645 \u0631\u0633\u0627\u0646\u06cc \u062f\u0631 \u062a\u0644\u0627\u0634\u0646\u062f \u062a\u0627 \u0645\u0642\u0627\u062f\u06cc\u0631 \u0627\u0646\u062f\u0631\u0648\u06cc\u062f\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u0639\u0644\u0627\u0646 \u0647\u0627 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u0646\u062f \u0648 \u0645\u0627 \u0628\u0627\u06cc\u062f \u0628\u0627 \u063a\u0644\u0628\u0647 \u0628\u0631 \u0645\u0642\u0627\u062f\u06cc\u0631 com.google.firebase.messaging \u0622\u0646 \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u062f\u0633\u062a\u06cc \u062d\u0644 \u06a9\u0646\u06cc\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight diff\"><code><span class=\"p\">android\/app\/src\/main\/AndroidManifest.xml\n<\/span><span class=\"err\">\n<\/span><span class=\"gd\">- <meta-data android:name=\"com.google.firebase.messaging.default_notification_channel_id\" android:value=\"default\"\/>\n<\/span><span class=\"gi\">+ <meta-data android:name=\"com.google.firebase.messaging.default_notification_channel_id\" android:value=\"default\" tools:replace=\"android:value\"\/>\n<\/span><span class=\"err\">\n<\/span><span class=\"gd\">- <meta-data android:name=\"com.google.firebase.messaging.default_notification_color\" android:resource=\"@color\/notification_icon_color\"\/>\n<\/span><span class=\"gi\">+ <meta-data android:name=\"com.google.firebase.messaging.default_notification_color\" android:resource=\"@color\/notification_icon_color\" tools:replace=\"android:resource\"\/>\n<\/span><span class=\"err\">\n<\/span><span class=\"gd\">- <meta-data android:name=\"com.google.firebase.messaging.default_notification_icon\" android:resource=\"@drawable\/notification_icon\"\/>\n<\/span><span class=\"gi\">+ <meta-data android:name=\"com.google.firebase.messaging.default_notification_icon\" android:resource=\"@drawable\/notification_icon\" tools:replace=\"android:resource\"\/>\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u0645 \u0648 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code> npm run android\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0631\u0627 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u062a\u0627 \u06af\u0648\u0634 \u062f\u0627\u062f\u0646 \u0628\u0647 \u067e\u06cc\u0627\u0645 \u0647\u0627\u06cc \u0627\u0631\u0633\u0627\u0644 \u0634\u062f\u0647 \u0627\u0632 Firebase \u0631\u0627 \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u0645. \u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u062f\u0631 \u067e\u0633 \u0632\u0645\u06cc\u0646\u0647 (\u0628\u0631\u0646\u0627\u0645\u0647 \u062f\u0631 \u062a\u0645\u0631\u06a9\u0632 \u06cc\u0627 \u0628\u0633\u062a\u0647 \u0634\u062f\u0646 \u0646\u06cc\u0633\u062a) \u060c \u0633\u06cc\u0633\u062a\u0645 \u0639\u0627\u0645\u0644 \u0628\u0647 \u0637\u0648\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0627\u0639\u0644\u0627\u0646 \u0647\u0627 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0645\u0627 \u0627\u062f\u0627\u0631\u0647 \u0645\u06cc \u06a9\u0646\u062f \u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0645\u0627 \u0628\u0627\u06cc\u062f \u0645\u062c\u0648\u0632\u0647\u0627\u06cc \u0644\u0627\u0632\u0645 \u0631\u0627 \u0627\u0639\u0637\u0627 \u06a9\u0646\u06cc\u0645 \u062a\u0627 \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u0639\u0627\u0645\u0644 \u0627\u062c\u0627\u0632\u0647 \u062f\u0647\u062f \u062a\u0627 \u0627\u0639\u0644\u0627\u0646 \u0647\u0627\u06cc \u0641\u0634\u0627\u0631 \u0631\u0627 \u0646\u0645\u0627\u06cc\u0634 \u062f\u0647\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">getMessaging<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">@react-native-firebase\/messaging<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">PermissionsAndroid<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">react-native<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\n\n<span class=\"c1\">\/\/ Get a Firebase Messaging service instance<\/span>\n<span class=\"kd\">const<\/span> <span class=\"nx\">messaging<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">getMessaging<\/span><span class=\"p\">();<\/span>\n\n<span class=\"c1\">\/\/IOS Permission<\/span>\n<span class=\"k\">await<\/span> <span class=\"nx\">messaging<\/span><span class=\"p\">.<\/span><span class=\"nf\">requestPermission<\/span><span class=\"p\">();<\/span>\n<span class=\"c1\">\/\/Android Permission<\/span>\n<span class=\"k\">await<\/span> <span class=\"nx\">PermissionsAndroid<\/span><span class=\"p\">.<\/span><span class=\"nf\">request<\/span><span class=\"p\">(<\/span>\n  <span class=\"nx\">PermissionsAndroid<\/span><span class=\"p\">.<\/span><span class=\"nx\">PERMISSIONS<\/span><span class=\"p\">.<\/span><span class=\"nx\">POST_NOTIFICATIONS<\/span>\n<span class=\"p\">);<\/span>\n\n<span class=\"c1\">\/\/ Subscribe to receive events from Firebase messaging service<\/span>\n<span class=\"k\">await<\/span> <span class=\"nx\">messaging<\/span><span class=\"p\">.<\/span><span class=\"nf\">registerDeviceForRemoteMessages<\/span><span class=\"p\">();<\/span>\n<span class=\"c1\">\/\/ Get device a FCM token for the device<\/span>\n<span class=\"kd\">const<\/span> <span class=\"nx\">pushToken<\/span> <span class=\"o\">=<\/span> <span class=\"k\">await<\/span> <span class=\"nx\">messaging<\/span><span class=\"p\">.<\/span><span class=\"nf\">getToken<\/span><span class=\"p\">();<\/span>\n<span class=\"c1\">\/\/ You probably would like save the token in a database<\/span>\n<span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nf\">log<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Firebase Token:<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"nx\">pushToken<\/span><span class=\"p\">);<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h6>\n<p>  \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0637\u0631\u06cc\u0642 \u06a9\u0646\u0633\u0648\u0644 Firebase \u067e\u06cc\u0627\u0645 \u0627\u0631\u0633\u0627\u0644 \u06a9\u0646\u06cc\u062f<br \/>\u0627\u062c\u0631\u0627\u06cc> \u067e\u06cc\u0627\u0645 \u0631\u0633\u0627\u0646\u06cc> \u06a9\u0645\u067e\u06cc\u0646 \u062c\u062f\u06cc\u062f> \u0627\u0639\u0644\u0627\u0646 \u0647\u0627> \u0627\u0631\u0633\u0627\u0644 \u067e\u06cc\u0627\u0645 \u0622\u0632\u0645\u0627\u06cc\u0634\u06cc<br \/>\n<\/h6>\n<p>\u0645\u0627 \u062f\u0631 \u062d\u0627\u0644 \u062d\u0627\u0636\u0631 \u06cc\u06a9 \u0633\u06cc\u0633\u062a\u0645 \u0627\u0637\u0644\u0627\u0639 \u0631\u0633\u0627\u0646\u06cc \u0627\u0633\u0627\u0633\u06cc \u062f\u0631 \u062d\u0627\u0644 \u06a9\u0627\u0631 \u0647\u0633\u062a\u06cc\u0645 \u060c \u0627\u0645\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u0627\u0646\u062a\u062e\u0627\u0628 \u0637\u0631\u0627\u062d\u06cc \u060c \u067e\u06cc\u0627\u0645 \u0631\u0633\u0627\u0646\u06cc Firebase \u0628\u0647 \u0637\u0648\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 \u067e\u06cc\u0627\u0645 \u0647\u0627 \u0631\u0627 \u06a9\u0646\u062a\u0631\u0644 \u0646\u0645\u06cc \u06a9\u0646\u062f \u0648\u0642\u062a\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u062f\u0631 \u067e\u06cc\u0634 \u0632\u0645\u06cc\u0646\u0647 \u0642\u0631\u0627\u0631 \u062f\u0627\u0631\u062f (\u0628\u0627\u0632 \u060c \u0645\u0648\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0642\u0631\u0627\u0631 \u0645\u06cc \u06af\u06cc\u0631\u062f) \u060c \u0632\u06cc\u0631\u0627 \u0645\u0627 \u0644\u0632\u0648\u0645\u0627\u064b \u0646\u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u0627\u06af\u0631 \u06a9\u0627\u0631\u0628\u0631 \u0627\u0632 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u062f \u060c \u0627\u0639\u0644\u0627\u0646 \u0641\u0634\u0627\u0631 \u0631\u0627 \u0646\u0634\u0627\u0646 \u062f\u0647\u06cc\u0645. \u062f\u0631 \u0645\u0648\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u0646 \u060c \u0645\u0646 \u0645\u06cc \u062e\u0648\u0627\u0647\u0645 \u0627\u0639\u0644\u0627\u0646 \u0641\u0634\u0627\u0631 \u0631\u0627 \u0646\u0634\u0627\u0646 \u062f\u0647\u0645 \u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u06cc\u06a9 \u0634\u0646\u0648\u0646\u062f\u0647 \u0631\u0648\u06cc\u062f\u0627\u062f \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645 \u062a\u0627 \u0647\u0646\u06af\u0627\u0645 \u0628\u0631\u0646\u0627\u0645\u0647 \u062f\u0631 \u067e\u06cc\u0634 \u0632\u0645\u06cc\u0646\u0647 \u060c \u067e\u06cc\u0627\u0645 \u0647\u0627 \u0631\u0627 \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u062f \u0648 \u0627\u0632 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u0647\u0627\u06cc \u0646\u0645\u0627\u06cc\u0634\u06af\u0627\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u062f \u062a\u0627 \u0633\u06cc\u0633\u062a\u0645 \u0639\u0627\u0645\u0644 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0646\u0645\u0627\u06cc\u0634 \u0627\u0639\u0644\u0627\u0646 \u0641\u0634\u0627\u0631 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">getMessaging<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">@react-native-firebase\/messaging<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"o\">*<\/span> <span class=\"k\">as<\/span> <span class=\"nx\">Notifications<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">expo-notifications<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\n\n<span class=\"c1\">\/\/ Configure push notification behavior when app is in foreground<\/span>\n<span class=\"nx\">Notifications<\/span><span class=\"p\">.<\/span><span class=\"nf\">setNotificationHandler<\/span><span class=\"p\">({<\/span>\n  <span class=\"na\">handleNotification<\/span><span class=\"p\">:<\/span> <span class=\"k\">async <\/span><span class=\"p\">()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">({<\/span>\n    <span class=\"na\">shouldShowAlert<\/span><span class=\"p\">:<\/span> <span class=\"kc\">true<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">shouldPlaySound<\/span><span class=\"p\">:<\/span> <span class=\"kc\">true<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">shouldSetBadge<\/span><span class=\"p\">:<\/span> <span class=\"kc\">false<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">shouldShowBanner<\/span><span class=\"p\">:<\/span> <span class=\"kc\">true<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">shouldShowList<\/span><span class=\"p\">:<\/span> <span class=\"kc\">true<\/span><span class=\"p\">,<\/span>\n  <span class=\"p\">}),<\/span>\n<span class=\"p\">});<\/span>\n\n<span class=\"c1\">\/\/ Trigger notification at same moment<\/span>\n<span class=\"k\">async<\/span> <span class=\"kd\">function<\/span> <span class=\"nf\">schedulePushNotification<\/span><span class=\"p\">({<\/span>\n  <span class=\"nx\">title<\/span> <span class=\"o\">=<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">New menage<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\n  <span class=\"nx\">body<\/span> <span class=\"o\">=<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">You have a new message!<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\n  <span class=\"nx\">data<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{},<\/span>\n<span class=\"p\">})<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">await<\/span> <span class=\"nx\">Notifications<\/span><span class=\"p\">.<\/span><span class=\"nf\">scheduleNotificationAsync<\/span><span class=\"p\">({<\/span>\n    <span class=\"na\">content<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\n      <span class=\"nx\">title<\/span><span class=\"p\">,<\/span>\n      <span class=\"nx\">body<\/span><span class=\"p\">,<\/span>\n      <span class=\"nx\">data<\/span><span class=\"p\">,<\/span>\n    <span class=\"p\">},<\/span>\n    <span class=\"na\">trigger<\/span><span class=\"p\">:<\/span> <span class=\"kc\">null<\/span><span class=\"p\">,<\/span>\n  <span class=\"p\">});<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"c1\">\/\/ Get a Firebase Messaging service instance<\/span>\n<span class=\"kd\">const<\/span> <span class=\"nx\">messaging<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">getMessaging<\/span><span class=\"p\">();<\/span>\n\n<span class=\"nf\">useEffect<\/span><span class=\"p\">(()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n  <span class=\"c1\">\/\/ Handle foreground messages and returns the cleanup function<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"nx\">unsubscribeForeground<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">messaging<\/span><span class=\"p\">.<\/span><span class=\"nf\">onMessage<\/span><span class=\"p\">(<\/span><span class=\"k\">async <\/span><span class=\"p\">(<\/span><span class=\"nx\">remoteMessage<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nf\">schedulePushNotification<\/span><span class=\"p\">({<\/span>\n      <span class=\"na\">title<\/span><span class=\"p\">:<\/span> <span class=\"nx\">remoteMessage<\/span><span class=\"p\">?.<\/span><span class=\"nx\">notification<\/span><span class=\"p\">?.<\/span><span class=\"nx\">title<\/span><span class=\"p\">,<\/span>\n      <span class=\"na\">body<\/span><span class=\"p\">:<\/span> <span class=\"nx\">remoteMessage<\/span><span class=\"p\">?.<\/span><span class=\"nx\">notification<\/span><span class=\"p\">?.<\/span><span class=\"nx\">body<\/span><span class=\"p\">,<\/span>\n      <span class=\"na\">data<\/span><span class=\"p\">:<\/span> <span class=\"nx\">remoteMessage<\/span><span class=\"p\">?.<\/span><span class=\"nx\">data<\/span> <span class=\"o\">||<\/span> <span class=\"p\">{},<\/span>\n    <span class=\"p\">});<\/span>\n  <span class=\"p\">});<\/span>\n\n  <span class=\"k\">return <\/span><span class=\"p\">()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n    <span class=\"c1\">\/\/ Clean the resources used for the listener<\/span>\n    <span class=\"nf\">unsubscribeForeground<\/span><span class=\"p\">();<\/span>\n  <span class=\"p\">};<\/span>\n<span class=\"p\">},<\/span> <span class=\"p\">[]);<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06af\u0631 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u0628\u0627 \u06a9\u0644\u06cc\u06a9 \u0628\u0631 \u0631\u0648\u06cc \u0622\u0646\u0647\u0627 \u060c \u0686\u06af\u0648\u0646\u06af\u06cc \u062a\u0639\u0627\u0645\u0644 \u0627\u0639\u0644\u0627\u0646 \u0647\u0627 \u0628\u0627 \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0631\u0627 \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u06cc\u062f \u060c \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644 \u0647\u062f\u0627\u06cc\u062a \u0628\u0647 \u06cc\u06a9 \u0635\u0641\u062d\u0647 \u062e\u0627\u0635 \u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u06cc\u06a9 \u0634\u0646\u0648\u0646\u062f\u0647 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0646\u0648\u0639 \u0631\u0648\u06cc\u062f\u0627\u062f \u0646\u06cc\u0632 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"nf\">useEffect<\/span><span class=\"p\">(()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n  <span class=\"c1\">\/\/ Handle app opening from a background messages and returns the cleanup function<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"nx\">unsubscribeBackground<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">messaging<\/span><span class=\"p\">.<\/span><span class=\"nf\">onNotificationOpenedApp<\/span><span class=\"p\">(<\/span>\n    <span class=\"c1\">\/\/ Handle navigation or app state changes<\/span>\n    <span class=\"p\">(<\/span><span class=\"nx\">remoteMessage<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n      <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nf\">log<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Background message opened:<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"nx\">remoteMessage<\/span><span class=\"p\">);<\/span>\n    <span class=\"p\">}<\/span>\n  <span class=\"p\">);<\/span>\n\n  <span class=\"k\">return <\/span><span class=\"p\">()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n    <span class=\"c1\">\/\/ Clean the resources used for the listener<\/span>\n    <span class=\"nf\">unsubscribeBackground<\/span><span class=\"p\">();<\/span>\n  <span class=\"p\">};<\/span>\n<span class=\"p\">},<\/span> <span class=\"p\">[]);<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u060c \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc \u06a9\u0627\u0645\u0644 \u060c \u0645\u0646 \u06cc\u06a9 \u0642\u0644\u0627\u0628 \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u062c\u062f\u0627\u06af\u0627\u0646\u0647 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u0645 \u062a\u0627 \u06a9\u062f \u0631\u0627 \u062a\u0645\u06cc\u0632 \u0646\u06af\u0647 \u062f\u0627\u0631\u0645 \u0648 \u0628\u0627 \u0622\u0646 \u062a\u0645\u0627\u0633 \u0628\u06af\u06cc\u0631\u0645 \u062a\u0627 \u062f\u0633\u062a\u06af\u0627\u0647 \u0631\u0627 \u062b\u0628\u062a \u06a9\u0631\u062f\u0647 \u0648 \u0646\u0634\u0627\u0646\u0647 \u0631\u0627 \u062f\u0631 DB \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0646\u0645. \u0645\u0646 \u062a\u0648\u06a9\u0646 \u0631\u0627 \u062f\u0631 \u0642\u0633\u0645\u062a \u0639\u0642\u0628 \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u0634\u0646\u0627\u0633\u0647 \u062f\u0633\u062a\u06af\u0627\u0647 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc \u06a9\u0646\u0645 \u062a\u0627 \u0646\u0634\u0627\u0646\u0647 \u0631\u0627 \u0647\u0646\u06af\u0627\u0645 \u062a\u0627\u0632\u0647 \u0633\u0627\u0632\u06cc \u06cc\u0627 \u0647\u0646\u06af\u0627\u0645 \u0646\u0635\u0628 \u0645\u062c\u062f\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u062f\u0631 \u0647\u0645\u0627\u0646 \u062f\u0633\u062a\u06af\u0627\u0647 \u0628\u0647 \u0631\u0648\u0632 \u06a9\u0646\u0645. \u0627\u0632 \u0622\u0646\u062c\u0627 \u06a9\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627 \u0628\u0647 \u062f\u0644\u0627\u06cc\u0644 \u0627\u0645\u0646\u06cc\u062a\u06cc \u062f\u0631 DB \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc \u0634\u0648\u0646\u062f \u060c \u0645\u0646 \u0627\u0632 \u06cc\u06a9 \u062a\u0648\u06a9\u0646 \u062a\u062d\u0645\u0644 \u0646\u06cc\u0632 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0646\u0648\u0639\u06cc \u062a\u0623\u06cc\u06cc\u062f \u0627\u0639\u062a\u0628\u0627\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">getMessaging<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">@react-native-firebase\/messaging<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"o\">*<\/span> <span class=\"k\">as<\/span> <span class=\"nx\">Notifications<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">expo-notifications<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">useEffect<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">react<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">PermissionsAndroid<\/span><span class=\"p\">,<\/span> <span class=\"nx\">Platform<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">react-native<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">getUniqueIdSync<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">react-native-device-info<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\n\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">postPushNotification<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">..\/services\/services<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\n\n<span class=\"c1\">\/\/ Configure push notification behavior when app is in foreground<\/span>\n<span class=\"nx\">Notifications<\/span><span class=\"p\">.<\/span><span class=\"nf\">setNotificationHandler<\/span><span class=\"p\">({<\/span>\n  <span class=\"na\">handleNotification<\/span><span class=\"p\">:<\/span> <span class=\"k\">async <\/span><span class=\"p\">()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">({<\/span>\n    <span class=\"na\">shouldShowAlert<\/span><span class=\"p\">:<\/span> <span class=\"kc\">true<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">shouldPlaySound<\/span><span class=\"p\">:<\/span> <span class=\"kc\">true<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">shouldSetBadge<\/span><span class=\"p\">:<\/span> <span class=\"kc\">false<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">shouldShowBanner<\/span><span class=\"p\">:<\/span> <span class=\"kc\">true<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">shouldShowList<\/span><span class=\"p\">:<\/span> <span class=\"kc\">true<\/span><span class=\"p\">,<\/span>\n  <span class=\"p\">}),<\/span>\n<span class=\"p\">});<\/span>\n\n<span class=\"c1\">\/\/ Trigger notification<\/span>\n<span class=\"k\">async<\/span> <span class=\"kd\">function<\/span> <span class=\"nf\">schedulePushNotification<\/span><span class=\"p\">({<\/span>\n  <span class=\"nx\">title<\/span> <span class=\"o\">=<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">Nova mensagem<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\n  <span class=\"nx\">body<\/span> <span class=\"o\">=<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">Voc\u00ea tem uma nova mensagem!<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\n  <span class=\"nx\">data<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{},<\/span>\n<span class=\"p\">})<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">await<\/span> <span class=\"nx\">Notifications<\/span><span class=\"p\">.<\/span><span class=\"nf\">scheduleNotificationAsync<\/span><span class=\"p\">({<\/span>\n    <span class=\"na\">content<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\n      <span class=\"nx\">title<\/span><span class=\"p\">,<\/span>\n      <span class=\"nx\">body<\/span><span class=\"p\">,<\/span>\n      <span class=\"nx\">data<\/span><span class=\"p\">,<\/span>\n    <span class=\"p\">},<\/span>\n    <span class=\"na\">trigger<\/span><span class=\"p\">:<\/span> <span class=\"kc\">null<\/span><span class=\"p\">,<\/span>\n  <span class=\"p\">});<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"c1\">\/\/ Configure push notification<\/span>\n<span class=\"k\">export<\/span> <span class=\"kd\">function<\/span> <span class=\"nf\">useConfigPushNotification<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n  <span class=\"c1\">\/\/ Firebase messaging service instance<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"nx\">messaging<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">getMessaging<\/span><span class=\"p\">();<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"nx\">deviceId<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">getUniqueIdSync<\/span><span class=\"p\">();<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"nx\">platform<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">Platform<\/span><span class=\"p\">.<\/span><span class=\"nx\">OS<\/span><span class=\"p\">;<\/span>\n\n  <span class=\"cm\">\/**\n   * Handle permissions, register device in Firebase and save token in back end\n   * @param {string} bearerToken\n   *\/<\/span>\n  <span class=\"k\">async<\/span> <span class=\"kd\">function<\/span> <span class=\"nf\">register<\/span><span class=\"p\">(<\/span><span class=\"nx\">bearerToken<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n    <span class=\"c1\">\/\/ IOS permission<\/span>\n    <span class=\"k\">await<\/span> <span class=\"nx\">messaging<\/span><span class=\"p\">.<\/span><span class=\"nf\">requestPermission<\/span><span class=\"p\">();<\/span>\n    <span class=\"c1\">\/\/ Android permission<\/span>\n    <span class=\"k\">await<\/span> <span class=\"nx\">PermissionsAndroid<\/span><span class=\"p\">.<\/span><span class=\"nf\">request<\/span><span class=\"p\">(<\/span>\n      <span class=\"nx\">PermissionsAndroid<\/span><span class=\"p\">.<\/span><span class=\"nx\">PERMISSIONS<\/span><span class=\"p\">.<\/span><span class=\"nx\">POST_NOTIFICATIONS<\/span>\n    <span class=\"p\">);<\/span>\n\n    <span class=\"c1\">\/\/ Register device<\/span>\n    <span class=\"k\">await<\/span> <span class=\"nx\">messaging<\/span><span class=\"p\">.<\/span><span class=\"nf\">registerDeviceForRemoteMessages<\/span><span class=\"p\">();<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">pushToken<\/span> <span class=\"o\">=<\/span> <span class=\"k\">await<\/span> <span class=\"nx\">messaging<\/span><span class=\"p\">.<\/span><span class=\"nf\">getToken<\/span><span class=\"p\">();<\/span>\n\n    <span class=\"c1\">\/\/ Save token in back end<\/span>\n    <span class=\"k\">try<\/span> <span class=\"p\">{<\/span>\n      <span class=\"k\">await<\/span> <span class=\"nf\">postPushNotification<\/span><span class=\"p\">(<\/span><span class=\"nx\">bearerToken<\/span><span class=\"p\">,<\/span> <span class=\"nx\">platform<\/span><span class=\"p\">,<\/span> <span class=\"nx\">pushToken<\/span><span class=\"p\">,<\/span> <span class=\"nx\">deviceId<\/span><span class=\"p\">);<\/span>\n    <span class=\"p\">}<\/span> <span class=\"k\">catch <\/span><span class=\"p\">(<\/span><span class=\"nx\">err<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n      <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nf\">log<\/span><span class=\"p\">(<\/span><span class=\"nx\">err<\/span><span class=\"p\">?.<\/span><span class=\"nx\">response<\/span><span class=\"p\">);<\/span>\n    <span class=\"p\">}<\/span>\n  <span class=\"p\">}<\/span>\n\n  <span class=\"nf\">useEffect<\/span><span class=\"p\">(()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n    <span class=\"c1\">\/\/ Handle foreground messages and returns the cleanup function<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">unsubscribeForeground<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">messaging<\/span><span class=\"p\">.<\/span><span class=\"nf\">onMessage<\/span><span class=\"p\">(<\/span><span class=\"k\">async <\/span><span class=\"p\">(<\/span><span class=\"nx\">remoteMessage<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n      <span class=\"nf\">schedulePushNotification<\/span><span class=\"p\">({<\/span>\n        <span class=\"na\">title<\/span><span class=\"p\">:<\/span> <span class=\"nx\">remoteMessage<\/span><span class=\"p\">?.<\/span><span class=\"nx\">notification<\/span><span class=\"p\">?.<\/span><span class=\"nx\">title<\/span><span class=\"p\">,<\/span>\n        <span class=\"na\">body<\/span><span class=\"p\">:<\/span> <span class=\"nx\">remoteMessage<\/span><span class=\"p\">?.<\/span><span class=\"nx\">notification<\/span><span class=\"p\">?.<\/span><span class=\"nx\">body<\/span><span class=\"p\">,<\/span>\n        <span class=\"na\">data<\/span><span class=\"p\">:<\/span> <span class=\"nx\">remoteMessage<\/span><span class=\"p\">?.<\/span><span class=\"nx\">data<\/span> <span class=\"o\">||<\/span> <span class=\"p\">{},<\/span>\n      <span class=\"p\">});<\/span>\n    <span class=\"p\">});<\/span>\n\n    <span class=\"c1\">\/\/ Handle app opening from a background messages and returns the cleanup function<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">unsubscribeBackground<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">messaging<\/span><span class=\"p\">.<\/span><span class=\"nf\">onNotificationOpenedApp<\/span><span class=\"p\">(<\/span>\n      <span class=\"c1\">\/\/ Background message pop up is handled automatically<\/span>\n      <span class=\"c1\">\/\/ Handle navigation or app state changes<\/span>\n      <span class=\"p\">(<\/span><span class=\"nx\">remoteMessage<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n        <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nf\">log<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Background message opened:<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"nx\">remoteMessage<\/span><span class=\"p\">);<\/span>\n      <span class=\"p\">}<\/span>\n    <span class=\"p\">);<\/span>\n\n    <span class=\"k\">return <\/span><span class=\"p\">()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n      <span class=\"nf\">unsubscribeForeground<\/span><span class=\"p\">();<\/span>\n      <span class=\"nf\">unsubscribeBackground<\/span><span class=\"p\">();<\/span>\n    <span class=\"p\">};<\/span>\n  <span class=\"p\">},<\/span> <span class=\"p\">[]);<\/span>\n\n  <span class=\"k\">return<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">register<\/span> <span class=\"p\">};<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0648 \u062f\u0631 \u0622\u062e\u0631 \u060c \u0628\u0631\u0627\u06cc \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u060c \u0628\u0627 \u0642\u0644\u0627\u0628 \u062a\u0645\u0627\u0633 \u0628\u06af\u06cc\u0631\u06cc\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"kd\">const<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">register<\/span> <span class=\"p\">}<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">useConfigPushNotification<\/span><span class=\"p\">();<\/span>\n\n<span class=\"c1\">\/\/ Config Push Notifications<\/span>\n<span class=\"k\">try<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">await<\/span> <span class=\"nf\">register<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">bearer_token<\/span><span class=\"dl\">\"<\/span><span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span> <span class=\"k\">catch <\/span><span class=\"p\">(<\/span><span class=\"nx\">err<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nf\">log<\/span><span class=\"p\">(<\/span><span class=\"nx\">err<\/span><span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u0645\u06cc\u062f\u0648\u0627\u0631\u0645 \u0627\u06cc\u0646 \u0631\u0627\u0647\u0646\u0645\u0627 \u0628\u0647 \u0634\u0645\u0627 \u06a9\u0645\u06a9 \u06a9\u0646\u062f (\u0648 \u062e\u0648\u062f \u0622\u06cc\u0646\u062f\u0647 \u0645\u0646) \u0627\u0639\u0644\u0627\u0646 \u0647\u0627\u06cc \u0641\u0634\u0627\u0631 \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0646\u0645\u0627\u06cc\u0634\u06af\u0627\u0647 \u0648 Firebase \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f!<br \/>\u0628\u0647 \u0645\u0646 \u0627\u0637\u0644\u0627\u0639 \u062f\u0647\u06cc\u062f \u06a9\u0647 \u0622\u06cc\u0627 \u0633\u0648\u0627\u0644\u06cc \u062f\u0627\u0631\u06cc\u062f \u06cc\u0627 \u0686\u06cc\u0632\u06cc \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0647\u0628\u0648\u062f \u06cc\u0627\u0628\u062f.<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u0627\u06cc\u0646 \u0631\u0648\u0632\u0647\u0627 \u0645\u062c\u0628\u0648\u0631 \u0634\u062f\u0645 \u0627\u0639\u0644\u0627\u0646 \u0647\u0627\u06cc \u0641\u0634\u0627\u0631 \u0631\u0627 \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u06a9\u0646\u0645 \u060c \u0648 \u0627\u0632 \u0622\u0646\u062c\u0627 \u06a9\u0647 \u0645\u0646 \u0648\u0627\u0642\u0639\u0627\u064b \u062f\u0648\u0633\u062a \u062f\u0627\u0631\u0645 \u0646\u0645\u0627\u06cc\u0634\u06af\u0627\u0647 Direction \u062f\u0631 \u062d\u0627\u0644 \u0631\u0641\u062a\u0646 \u0628\u0627\u0634\u062f \u060c \u062a\u0635\u0645\u06cc\u0645 \u06af\u0631\u0641\u062a\u0645 \u0628\u06cc\u0634\u062a\u0631 \u0628\u0647 \u0627\u06a9\u0648\u0633\u06cc\u0633\u062a\u0645 \u0622\u0646 \u062a\u06a9\u06cc\u0647 \u062f\u0647\u0645 \u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u062a\u0635\u0645\u06cc\u0645 \u06af\u0631\u0641\u062a\u0645 \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0648\u06cc\u0698\u06af\u06cc \u0627\u0632 \u0646\u0645\u0627\u06cc\u0634\u06af\u0627\u0647 \u0647\u0627\u06cc \u0646\u0645\u0627\u06cc\u0634\u06af\u0627\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u0645. \u062f\u0631 \u06a9\u0645\u0627\u0644 \u062a\u0639\u062c\u0628 \u060c \u0645\u0646 \u0647\u06cc\u0686 &hellip;<\/p>\n","protected":false},"author":2,"featured_media":110734,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-110733","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/110733","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=110733"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/110733\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/110734"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=110733"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=110733"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=110733"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}