Disabled로 표시되면 3점 메뉴 > Google Cloud Console에서 API 관리를 클릭합니다. Google Cloud Console에서 Enable을 클릭하고 녹색 체크 표시와 “API Enabled”가 나타날 때까지 기다립니다.
Google Cloud Console에서 활성화된 Firebase Cloud Messaging API
지금이 Firebase Service Account에 필요한 권한이 있는지 확인하기에 좋은 시점입니다:
cloudmessaging.messages.create
firebase.projects.get
새로 생성된 Firebase 프로젝트는 보통 기본 Service Account에 이러한 권한을 가지고 있습니다. 확실하지 않거나 오래된 프로젝트로 작업하는 경우, 진행하기 전에 확인하세요. 자세한 내용은 Service Account 권한은 어떻게 확인하나요?를 참조하세요.
3
새 비공개 키 생성
다시 프로젝트 설정으로 돌아가 Service accounts 탭을 선택하고 새 비공개 키 생성을 클릭합니다.
Firebase 내 Service Accounts 섹션
팝업에서 키 생성을 클릭하여 확인합니다.
Service Account에 대한 비공개 키 생성.
다운로드된 비공개 키에는 민감한 자격 증명이 포함되어 있습니다. 공유하거나 버전 관리에 체크인하지 마세요.
Service Account 권한은 Firebase 콘솔이 아닌 Google Cloud Console에서 관리됩니다. OneSignal에 업로드한 비공개 키의 Service Account는 다음 두 가지를 모두 가지고 있어야 합니다:
cloudmessaging.messages.create — Firebase Cloud Messaging API Admin(roles/firebasecloudmessaging.admin)에 의해 부여됨.
firebase.projects.get — Firebase Viewer(roles/firebase.viewer)에 의해 부여됨.
Firebase Admin(roles/firebase.admin), Editor 또는 Owner와 같은 더 광범위한 역할도 두 권한을 모두 포함하므로 요구 사항을 충족합니다. OneSignal 전용 Service Account의 경우, 비공개 키가 노출되었을 때의 영향을 제한하기 위해 위의 좁은 쌍을 선호하세요.Service Account 비공개 키를 업로드한 후 OneSignal 대시보드에 Invalid request가 표시되면, 누락된 역할이 가장 일반적인 원인입니다.
”This configuration is for a different Firebase Project”가 표시되는 이유는 무엇인가요?
이 오류는 업로드한 비공개 키가 다른 Firebase 프로젝트(다른 Sender ID)에 속할 때 발생합니다.해결책: 원래 Firebase 프로젝트의 비공개 키를 사용하세요. 사용할 수 없는 경우 앱 ID와 함께 support@onesignal.com에 문의하세요. 프로젝트를 전환하면 푸시 토큰이 재설정됩니다. 사용자는 푸시를 다시 받으려면 앱을 다시 열어야 합니다.
Firebase Cloud Messaging이란 무엇이며, OneSignal에는 왜 Service Account 비공개 키가 필요한가요? \
**Firebase Cloud Messaging (FCM)**은 Android 기기에 푸시 알림을 전달하는 Google의 서비스입니다. Service Account는 OneSignal이 Firebase 프로젝트에 인증하기 위해 사용하는 Google 신원이며, 비공개 키는 신원을 증명하는 JSON 파일입니다. 비공개 키를 업로드하면 OneSignal이 Firebase를 통해 사용자를 대신해 푸시를 전송할 권한을 부여받게 됩니다. 자세한 내용은 Google의 Service Account 문서를 참조하세요.
Huawei App Gallery를 통해 배포되는 Huawei 앱에 OneSignal이 푸시를 보낼 수 있도록 승인합니다.
웹 푸시 설정
웹사이트용 푸시 알림을 구성합니다.
이 페이지가 도움이 되었나요?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"OneSignal Documentation","description":"OneSignal is a platform for sending push notifications, emails, in-app messages, and SMS campaigns via a single API, Journey Builder, and a dashboard.","colors":{"primary":"#3A3DB3","light":"#E54B4D","dark":"#3A3DB3"},"logo":{"light":"https://mintcdn.com/onesignal/yJcueeDCO7UpHnnY/logo/OneSignal-Logo.svg?fit=max\u0026auto=format\u0026n=yJcueeDCO7UpHnnY\u0026q=85\u0026s=1fcfb6fef6d820fd9d99c74850711107","dark":"https://mintcdn.com/onesignal/s4WC_KzLxf8ornqq/logo/OneSignal-Logo-White.svg?fit=max\u0026auto=format\u0026n=s4WC_KzLxf8ornqq\u0026q=85\u0026s=2573a53b5aea961e18c82b3af8f31925"},"favicon":"https://mintcdn.com/onesignal/SGduBFHpiRdg5l6h/favicon.ico?fit=max\u0026auto=format\u0026n=SGduBFHpiRdg5l6h\u0026q=85\u0026s=c0a99fadc0553c658a83741c5611cef4","api":{"examples":{"languages":["curl","typescript","python","php","go","ruby","java","csharp","rust"],"autogenerate":true}},"navbar":{"links":[{"href":"mailto:support@onesignal.com","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://dashboard.onesignal.com"}},"footer":{"socials":{"github":"https://github.com/OneSignal","linkedin":"https://linkedin.com/company/onesignal","youtube":"https://www.youtube.com/@onesignalofficial/playlists"}},"seo":{"metatags":{"apple-mobile-web-app-title":"OneSignal Docs"}},"fonts":{"family":"Nunito Sans"},"styling":{"eyebrows":"breadcrumbs","latex":true},"integrations":{"ga4":{"measurementId":"G-2DGWL0VYP5"},"posthog":{"apiKey":"phc_vZpvE0f5eyzcOt30FHer34yddVmNdo9kmlMVRBzLMtn","apiHost":"https://eu.i.posthog.com","sessionRecording":true}},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"navigation":{"languages":[{"language":"en","href":"docs/en/home"},{"language":"cn","href":"docs/cn/home"},{"language":"ko","href":"docs/ko/home"},{"language":"ja","href":"docs/ja/home"},{"language":"tr","href":"docs/tr/home"},{"language":"pt-BR","href":"docs/pt-BR/home"},{"language":"es","href":"docs/es/home"},{"language":"fr","href":"docs/fr/home"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"onesignal","hasAudioNarration":false,"actualSubdomain":"onesignal","customDomains":["documentation.onesignal.com"],"gitSource":{"type":"github","owner":"onesignal","repo":"mintlify-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aee76d2161a823262d5e93f","clientVersion":"0.0.4094","searchFilterCounts":[{"language":"en","tag":"User Guides","count":203},{"language":"es","tag":"Guías del Usuario","count":178},{"language":"fr","tag":"Guides utilisateur","count":178},{"language":"ja","tag":"ユーザーガイド","count":178},{"language":"ko","tag":"사용자 가이드","count":178},{"language":"pt-BR","tag":"Guia do Usuário","count":178},{"language":"tr","tag":"Kullanıcı Kılavuzları","count":178},{"language":"cn","tag":"用户指南","count":176},{"language":"en","tag":"Message channels","count":90},{"language":"es","tag":"Canales de mensajería","count":84},{"language":"fr","tag":"Canaux de messagerie","count":84},{"language":"ja","tag":"メッセージングチャネル","count":84},{"language":"ko","tag":"메시지 채널","count":84},{"language":"pt-BR","tag":"Canais de mensagem","count":84},{"language":"tr","tag":"Mesaj kanalları","count":84},{"language":"cn","tag":"消息渠道","count":83},{"language":"default","tag":"API Reference","count":68},{"language":"default","tag":"API reference","count":64},{"language":"en","tag":"Analytics \u0026 Integrations","count":53},{"language":"es","tag":"Analítica \u0026 Integraciones","count":52},{"language":"fr","tag":"Analyses et intégrations","count":52},{"language":"ja","tag":"分析 \u0026 統合","count":52},{"language":"ko","tag":"분석 \u0026 통합","count":52},{"language":"pt-BR","tag":"Análises \u0026 Integrações","count":52},{"language":"tr","tag":"Analitik ve Entegrasyonlar","count":52},{"language":"cn","tag":"分析和集成","count":51},{"language":"cn","tag":"开发者指南","count":48},{"language":"es","tag":"Guías del desarrollador","count":48},{"language":"fr","tag":"Guides développeur","count":48},{"language":"ja","tag":"開発者ガイド","count":48},{"language":"ko","tag":"개발자 가이드","count":48},{"language":"tr","tag":"Geliştirici Kılavuzları","count":48},{"language":"en","tag":"Developer Guides","count":47},{"language":"pt-BR","tag":"Guia de desenvolvedor","count":47},{"language":"en","tag":"Integrations","count":37},{"language":"es","tag":"Integraciones","count":37},{"language":"fr","tag":"Intégrations","count":37},{"language":"ja","tag":"統合","count":37},{"language":"ko","tag":"통합","count":37},{"language":"pt-BR","tag":"Integrações","count":37},{"language":"tr","tag":"Entegrasyonlar","count":37},{"language":"cn","tag":"集成","count":36},{"language":"en","tag":"Tutorials","count":35},{"language":"cn","tag":"推送通知","count":31},{"language":"cn","tag":"OneSignal 作为目的地","count":31},{"language":"en","tag":"Push","count":31},{"language":"en","tag":"OneSignal as destination","count":31},{"language":"es","tag":"Push notificaciones","count":31},{"language":"es","tag":"OneSignal como destino","count":31},{"language":"fr","tag":"Push","count":31},{"language":"fr","tag":"OneSignal comme destination","count":31},{"language":"ja","tag":"プッシュ通知","count":31},{"language":"ja","tag":"OneSignal as 宛先","count":31},{"language":"ko","tag":"푸시","count":31},{"language":"ko","tag":"OneSignal을 데이터 목적지로 사용","count":31},{"language":"pt-BR","tag":"Push notificações","count":31},{"language":"pt-BR","tag":"OneSignal como destino","count":31},{"language":"tr","tag":"Anlık bildirimler","count":31},{"language":"tr","tag":"OneSignal hedef","count":31},{"language":"en","tag":"Mobile SDKs","count":26},{"language":"cn","tag":"移动SDK","count":25},{"language":"es","tag":"SDKs móviles","count":25},{"language":"fr","tag":"SDK mobiles","count":25},{"language":"ja","tag":"モバイルSDK","count":25},{"language":"ko","tag":"모바일 SDKs","count":25},{"language":"pt-BR","tag":"SDKs móveis","count":25},{"language":"tr","tag":"Mobil SDK'lar","count":25},{"language":"cn","tag":"教程","count":24},{"language":"es","tag":"Tutoriales","count":24},{"language":"fr","tag":"Tutoriels","count":24},{"language":"ja","tag":"チュートリアル","count":24},{"language":"ko","tag":"튜토리얼","count":24},{"language":"pt-BR","tag":"Tutoriais","count":24},{"language":"tr","tag":"Eğitimler","count":24},{"language":"en","tag":"Mobile SDK setup","count":19},{"language":"cn","tag":"移动SDK设置","count":18},{"language":"es","tag":"Configuración del SDK móvil","count":18},{"language":"fr","tag":"Configuration SDK mobile","count":18},{"language":"ja","tag":"モバイルSDKセットアップ","count":18},{"language":"ko","tag":"모바일 SDK 설정","count":18},{"language":"pt-BR","tag":"Configuração do SDK móvel","count":18},{"language":"tr","tag":"Mobil SDK kurulumu","count":18},{"language":"default","tag":"Messages","count":9},{"language":"default","tag":"Users","count":9},{"language":"default","tag":"Organization","count":9},{"language":"default","tag":"Journeys","count":8},{"language":"default","tag":"Deprecated","count":6},{"language":"default","tag":"Templates","count":6},{"language":"default","tag":"Subscriptions","count":6},{"language":"default","tag":"Segments","count":5}]},"assistantConfig":{"enableStarterQuestions":false,"deflection":{"enabled":true,"email":"support@onesignal.com","showHelpButton":true}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[],"page":{"pagePath":"docs/ko/android-firebase-credentials","slug":"/docs/ko/android-firebase-credentials","pageMetadata":{"title":"Android Firebase 자격 증명","description":"OneSignal에서 Firebase Cloud Messaging(FCM) Service Account 자격 증명을 구성하여 Google Play 스토어의 앱에 Android 푸시 알림을 활성화하세요.","keywords":["Firebase Cloud Messaging","FCM API V1","Android 푸시 알림","Firebase Service Account","FCM JSON 키"],"href":"/docs/ko/android-firebase-credentials"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"OneSignal에서 Firebase Cloud Messaging(FCM) Service Account 자격 증명을 구성하여 Google Play 스토어의 앱에 Android 푸시 알림을 활성화하세요.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,hr:`hr`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Card,Check,Columns,Frame,Heading,Note,OptimizedImage,Step,Steps,Warning}=_components;if(!Card)_missingMdxReference(`Card`,true);if(!Check)_missingMdxReference(`Check`,true);if(!Columns)_missingMdxReference(`Columns`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Google Play 스토어를 통해 Android 앱을 다운로드한 사용자에게 푸시 알림을 보내려면, Firebase Cloud Messaging(FCM) Service Account 비공개 키를 생성하여 OneSignal에 업로드해야 합니다.`}),`\n`,_jsxs(Note,{children:[_jsx(_components.p,{children:`이 안내는 다음에 적용되지 않습니다:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`웹 푸시.`}),` Android 기기는 FCM Service Account 없이도 웹사이트나 PWA를 구독할 수 있습니다. `,_jsx(_components.a,{href:`/docs/ko/web-push-setup`,children:`웹 푸시 설정`}),`을 참조하세요.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Huawei App Gallery를 통해 배포되는 Huawei 앱.`}),` `,_jsx(_components.a,{href:`/docs/ko/authorize-onesignal-to-send-huawei-push`,children:`Huawei 승인`}),`을 참조하세요.`]}),`\n`]})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`요구-사항`,children:`요구 사항`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Google Play 스토어를 통해 배포된 Android 앱`}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://onesignal.com`,children:`OneSignal 계정`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://firebase.google.com`,children:`Firebase 계정(무료)`})}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`cloudmessaging.messages.create`}),` 및 `,_jsx(_components.code,{children:`firebase.projects.get`}),` 권한이 있는 Firebase Service Account 비공개 키`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`없는 경우 아래 단계를 따라 `,_jsx(_components.a,{href:`#create-a-firebase-service-account-private-key`,children:`Firebase Service Account 비공개 키를 생성`}),`하세요`]}),`\n`,_jsxs(_components.li,{children:[`이미 비공개 키가 있는 경우 `,_jsx(_components.a,{href:`#how-do-i-check-my-service-account-permissions`,children:`기존 권한을 확인`}),`하세요`]}),`\n`]}),`\n`]}),`\n`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`create-a-firebase-service-account-private-key`,children:`Firebase Service Account 비공개 키 생성 \\\\`}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Firebase 프로젝트 생성 또는 열기`,children:[_jsxs(_components.p,{children:[_jsx(_components.a,{href:`https://console.firebase.google.com/`,children:`Firebase 콘솔`}),`로 이동하여 프로젝트를 생성하거나 선택하세요.`]}),_jsx(Frame,{caption:`Firebase 내 프로젝트 페이지`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/firebase-projects.png?fit=max\u0026auto=format\u0026n=uWz0BIZj_JUi1RGq\u0026q=85\u0026s=aca8614ec0e40fc63fd71f3160098778`,alt:`Firebase 콘솔에서 사용 가능한 프로젝트 목록을 표시`,\"data-og-width\":`2656`,width:`2656`,\"data-og-height\":`1780`,height:`1780`,\"data-path\":`images/mobile/firebase-projects.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/firebase-projects.png?w=280\u0026fit=max\u0026auto=format\u0026n=uWz0BIZj_JUi1RGq\u0026q=85\u0026s=20c64054ed6763a3be6d73713e9adc38 280w, https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/firebase-projects.png?w=560\u0026fit=max\u0026auto=format\u0026n=uWz0BIZj_JUi1RGq\u0026q=85\u0026s=90aceea94e5054275b5162ddb6dc05ba 560w, https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/firebase-projects.png?w=840\u0026fit=max\u0026auto=format\u0026n=uWz0BIZj_JUi1RGq\u0026q=85\u0026s=c239262c5221d87e461d8cba4243f226 840w, https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/firebase-projects.png?w=1100\u0026fit=max\u0026auto=format\u0026n=uWz0BIZj_JUi1RGq\u0026q=85\u0026s=874e8f5fa61dc150085380cec02fe371 1100w, https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/firebase-projects.png?w=1650\u0026fit=max\u0026auto=format\u0026n=uWz0BIZj_JUi1RGq\u0026q=85\u0026s=1d537e7767f269a7d97d4970117916a0 1650w, https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/firebase-projects.png?w=2500\u0026fit=max\u0026auto=format\u0026n=uWz0BIZj_JUi1RGq\u0026q=85\u0026s=3cb27f13fa4ee704518ac02e9c041ad4 2500w`})})]}),_jsxs(Step,{title:`Firebase Cloud Messaging API V1 활성화`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`프로젝트 설정`}),`에서 `,_jsx(_components.strong,{children:`Cloud Messaging`}),` 탭을 선택합니다.`]}),_jsx(Frame,{caption:`Firebase 프로젝트 설정의 Cloud Messaging 탭`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/firebase-project-settings-cloud-messaging.png?fit=max\u0026auto=format\u0026n=uWz0BIZj_JUi1RGq\u0026q=85\u0026s=e877c1d0ca51b85b1f2e80418e0195c4`,alt:`Cloud Messaging 탭을 표시하는 Firebase 프로젝트 설정, Firebase Cloud Messaging API (V1) 상태는 Enabled`,\"data-og-width\":`2956`,width:`2956`,\"data-og-height\":`1140`,height:`1140`,\"data-path\":`images/mobile/firebase-project-settings-cloud-messaging.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/firebase-project-settings-cloud-messaging.png?w=280\u0026fit=max\u0026auto=format\u0026n=uWz0BIZj_JUi1RGq\u0026q=85\u0026s=28c476446eec4e5907141149af04a28d 280w, https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/firebase-project-settings-cloud-messaging.png?w=560\u0026fit=max\u0026auto=format\u0026n=uWz0BIZj_JUi1RGq\u0026q=85\u0026s=3688112d9c5f88e42200c135ac32b720 560w, https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/firebase-project-settings-cloud-messaging.png?w=840\u0026fit=max\u0026auto=format\u0026n=uWz0BIZj_JUi1RGq\u0026q=85\u0026s=89a7c1fe0474fa590a514053facef959 840w, https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/firebase-project-settings-cloud-messaging.png?w=1100\u0026fit=max\u0026auto=format\u0026n=uWz0BIZj_JUi1RGq\u0026q=85\u0026s=eee27f23587296234488d657830168c7 1100w, https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/firebase-project-settings-cloud-messaging.png?w=1650\u0026fit=max\u0026auto=format\u0026n=uWz0BIZj_JUi1RGq\u0026q=85\u0026s=f94a0b31efc2f96650d93222c35d7669 1650w, https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/firebase-project-settings-cloud-messaging.png?w=2500\u0026fit=max\u0026auto=format\u0026n=uWz0BIZj_JUi1RGq\u0026q=85\u0026s=1fd4514a95f0cdb1bb7439d0ecf750f2 2500w`})}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Firebase Cloud Messaging API (V1)`}),` 상태를 확인합니다:`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Enabled`}),`(녹색 체크 표시)로 표시되면 다음 단계로 진행하세요.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Disabled`}),`로 표시되면 `,_jsx(_components.strong,{children:`3점 메뉴 > Google Cloud Console에서 API 관리`}),`를 클릭합니다. Google Cloud Console에서 `,_jsx(_components.strong,{children:`Enable`}),`을 클릭하고 녹색 체크 표시와 “API Enabled”가 나타날 때까지 기다립니다.`]}),`\n`]}),_jsx(Frame,{caption:`Google Cloud Console에서 활성화된 Firebase Cloud Messaging API`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/firebase-cloud-messaging-api-v1-enabled.png?fit=max\u0026auto=format\u0026n=uWz0BIZj_JUi1RGq\u0026q=85\u0026s=9239c8baa0659152d8aed6fc6af810a7`,alt:`Google Cloud Console의 Firebase Cloud Messaging API 페이지에 녹색 체크 표시와 함께 API Enabled 상태가 표시됨`,\"data-og-width\":`1616`,width:`1616`,\"data-og-height\":`750`,height:`750`,\"data-path\":`images/mobile/firebase-cloud-messaging-api-v1-enabled.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/firebase-cloud-messaging-api-v1-enabled.png?w=280\u0026fit=max\u0026auto=format\u0026n=uWz0BIZj_JUi1RGq\u0026q=85\u0026s=125d2be824573b24ae1d0ad2dadace8d 280w, https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/firebase-cloud-messaging-api-v1-enabled.png?w=560\u0026fit=max\u0026auto=format\u0026n=uWz0BIZj_JUi1RGq\u0026q=85\u0026s=d65671d23e05cb02f5e5875ae735ab8f 560w, https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/firebase-cloud-messaging-api-v1-enabled.png?w=840\u0026fit=max\u0026auto=format\u0026n=uWz0BIZj_JUi1RGq\u0026q=85\u0026s=82a7c18d47a115f2c89b9fe3a5b315fe 840w, https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/firebase-cloud-messaging-api-v1-enabled.png?w=1100\u0026fit=max\u0026auto=format\u0026n=uWz0BIZj_JUi1RGq\u0026q=85\u0026s=f016f0b79f28a8433fb11cf20b6161f6 1100w, https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/firebase-cloud-messaging-api-v1-enabled.png?w=1650\u0026fit=max\u0026auto=format\u0026n=uWz0BIZj_JUi1RGq\u0026q=85\u0026s=90cf142a7d24dbf51444f9c50a9e496e 1650w, https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/firebase-cloud-messaging-api-v1-enabled.png?w=2500\u0026fit=max\u0026auto=format\u0026n=uWz0BIZj_JUi1RGq\u0026q=85\u0026s=49f07ba51430771bd0614949e711f72f 2500w`})}),_jsxs(Note,{children:[_jsx(_components.p,{children:`지금이 Firebase Service Account에 필요한 권한이 있는지 확인하기에 좋은 시점입니다:`}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`cloudmessaging.messages.create`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`firebase.projects.get`})}),`\n`]}),_jsxs(_components.p,{children:[`새로 생성된 Firebase 프로젝트는 보통 기본 Service Account에 이러한 권한을 가지고 있습니다. 확실하지 않거나 오래된 프로젝트로 작업하는 경우, 진행하기 전에 확인하세요. 자세한 내용은 `,_jsx(_components.a,{href:`#how-do-i-check-my-service-account-permissions`,children:`Service Account 권한은 어떻게 확인하나요?`}),`를 참조하세요.`]})]})]}),_jsxs(Step,{title:`새 비공개 키 생성`,children:[_jsxs(_components.p,{children:[`다시 `,_jsx(_components.strong,{children:`프로젝트 설정`}),`으로 돌아가 `,_jsx(_components.strong,{children:`Service accounts`}),` 탭을 선택하고 `,_jsx(_components.strong,{children:`새 비공개 키 생성`}),`을 클릭합니다.`]}),_jsx(Frame,{caption:`Firebase 내 Service Accounts 섹션`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/firebase-project-settings-service-accounts.png?fit=max\u0026auto=format\u0026n=uWz0BIZj_JUi1RGq\u0026q=85\u0026s=d0b4a6d7c84cd1a639b6de79c3789363`,alt:`Firebase 프로젝트 설정의 Service accounts 탭에 새 비공개 키 생성 버튼이 표시됨`,\"data-og-width\":`2978`,width:`2978`,\"data-og-height\":`1734`,height:`1734`,\"data-path\":`images/mobile/firebase-project-settings-service-accounts.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/firebase-project-settings-service-accounts.png?w=280\u0026fit=max\u0026auto=format\u0026n=uWz0BIZj_JUi1RGq\u0026q=85\u0026s=bfa5795777786f4a5ac52630bc2c3dec 280w, https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/firebase-project-settings-service-accounts.png?w=560\u0026fit=max\u0026auto=format\u0026n=uWz0BIZj_JUi1RGq\u0026q=85\u0026s=7eec0505dc3633c5fbc85420a96a1ff6 560w, https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/firebase-project-settings-service-accounts.png?w=840\u0026fit=max\u0026auto=format\u0026n=uWz0BIZj_JUi1RGq\u0026q=85\u0026s=ca0356bbfcc6b179cf2c27349336bb2e 840w, https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/firebase-project-settings-service-accounts.png?w=1100\u0026fit=max\u0026auto=format\u0026n=uWz0BIZj_JUi1RGq\u0026q=85\u0026s=8f60371d8fd7cdf1894b247fcc3a469f 1100w, https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/firebase-project-settings-service-accounts.png?w=1650\u0026fit=max\u0026auto=format\u0026n=uWz0BIZj_JUi1RGq\u0026q=85\u0026s=3f16e652211b08dcf36ab09cb15b2649 1650w, https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/firebase-project-settings-service-accounts.png?w=2500\u0026fit=max\u0026auto=format\u0026n=uWz0BIZj_JUi1RGq\u0026q=85\u0026s=84a07f9398e54052595bd10db09e3622 2500w`})}),_jsxs(_components.p,{children:[`팝업에서 `,_jsx(_components.strong,{children:`키 생성`}),`을 클릭하여 확인합니다.`]}),_jsx(Frame,{caption:`Service Account에 대한 비공개 키 생성.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/firebase-generate-new-private-key.png?fit=max\u0026auto=format\u0026n=uWz0BIZj_JUi1RGq\u0026q=85\u0026s=6b3ca4145c180400cf80a434adbbc216`,alt:`Service Account에 대한 새 비공개 키 생성을 위한 Firebase 확인 대화 상자`,\"data-og-width\":`1432`,width:`1432`,\"data-og-height\":`572`,height:`572`,\"data-path\":`images/mobile/firebase-generate-new-private-key.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/firebase-generate-new-private-key.png?w=280\u0026fit=max\u0026auto=format\u0026n=uWz0BIZj_JUi1RGq\u0026q=85\u0026s=d14ba08af3042bd4439f8f2589fa9bd4 280w, https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/firebase-generate-new-private-key.png?w=560\u0026fit=max\u0026auto=format\u0026n=uWz0BIZj_JUi1RGq\u0026q=85\u0026s=0c11c4d2442786b302d7dbe2e537f7bb 560w, https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/firebase-generate-new-private-key.png?w=840\u0026fit=max\u0026auto=format\u0026n=uWz0BIZj_JUi1RGq\u0026q=85\u0026s=983cd5389aeae5ef1e0defe3b0b6640a 840w, https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/firebase-generate-new-private-key.png?w=1100\u0026fit=max\u0026auto=format\u0026n=uWz0BIZj_JUi1RGq\u0026q=85\u0026s=66b1793cb9e2b718e58167bf4ac79231 1100w, https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/firebase-generate-new-private-key.png?w=1650\u0026fit=max\u0026auto=format\u0026n=uWz0BIZj_JUi1RGq\u0026q=85\u0026s=c083327eccc04bab32e9504d8a6fc90b 1650w, https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/firebase-generate-new-private-key.png?w=2500\u0026fit=max\u0026auto=format\u0026n=uWz0BIZj_JUi1RGq\u0026q=85\u0026s=3b3af5a416d4c5fd0793efab4adc9f33 2500w`})}),_jsx(Warning,{children:_jsx(_components.p,{children:`다운로드된 비공개 키에는 민감한 자격 증명이 포함되어 있습니다. 공유하거나 버전 관리에 체크인하지 마세요.`})}),_jsxs(_components.p,{children:[_jsx(_components.code,{children:`.json`}),` 파일을 안전한 위치에 저장하세요. 다음 섹션에서 필요합니다.`]})]})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`service-account-비공개-키를-onesignal에-업로드`,children:`Service Account 비공개 키를 OneSignal에 업로드`}),`\n`,_jsx(_components.p,{children:`OneSignal 대시보드에서:`}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Android 설정 열기`,children:[_jsx(_components.p,{children:`**설정 > 푸시 및 인앱 > 플랫폼 > Google Android (FCM)**으로 이동합니다.`}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`활성화`}),`(처음 설정 시) 또는 `,_jsx(_components.strong,{children:`설정`}),`(Android가 이미 구성된 경우)을 클릭합니다.`]}),_jsx(Frame,{caption:`OneSignal 앱 설정 내 플랫폼 화면`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/onesignal-push-platforms.png?fit=max\u0026auto=format\u0026n=uWz0BIZj_JUi1RGq\u0026q=85\u0026s=9b8af64aae3dd5fdcb715731710785ca`,alt:`플랫폼 탭에 Google Android (FCM) 타일과 설정 버튼이 표시된 OneSignal 푸시 및 인앱 설정`,\"data-og-width\":`2496`,width:`2496`,\"data-og-height\":`648`,height:`648`,\"data-path\":`images/mobile/onesignal-push-platforms.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/onesignal-push-platforms.png?w=280\u0026fit=max\u0026auto=format\u0026n=uWz0BIZj_JUi1RGq\u0026q=85\u0026s=ee03b094549e78f0d8bc0fc9f99de713 280w, https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/onesignal-push-platforms.png?w=560\u0026fit=max\u0026auto=format\u0026n=uWz0BIZj_JUi1RGq\u0026q=85\u0026s=33cd4c55a4fb076ecb7dd87fd42f56bb 560w, https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/onesignal-push-platforms.png?w=840\u0026fit=max\u0026auto=format\u0026n=uWz0BIZj_JUi1RGq\u0026q=85\u0026s=073c977815aa0139bdf547b1855dd819 840w, https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/onesignal-push-platforms.png?w=1100\u0026fit=max\u0026auto=format\u0026n=uWz0BIZj_JUi1RGq\u0026q=85\u0026s=b98a1cd69bfac76c7281f8ba0f116738 1100w, https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/onesignal-push-platforms.png?w=1650\u0026fit=max\u0026auto=format\u0026n=uWz0BIZj_JUi1RGq\u0026q=85\u0026s=3e9f9682e98f0c1997066db393f68a2a 1650w, https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/onesignal-push-platforms.png?w=2500\u0026fit=max\u0026auto=format\u0026n=uWz0BIZj_JUi1RGq\u0026q=85\u0026s=f99d8c22fd571384d455485e8a9201ff 2500w`})})]}),_jsxs(Step,{title:`Service Account 비공개 키 업로드`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`파일 선택`}),`을 클릭하고 이전 섹션에서 저장한 `,_jsx(_components.code,{children:`.json`}),` 비공개 키를 선택합니다.`]}),_jsx(Frame,{caption:`FCM 구성 화면`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/onesignal-fcm-configuration.png?fit=max\u0026auto=format\u0026n=uWz0BIZj_JUi1RGq\u0026q=85\u0026s=5fb6b977bf1517c453b1c0b0c9b57274`,alt:`Service Account JSON 파일 업로드 필드와 파일 선택 버튼이 있는 OneSignal Google Android (FCM) 구성 화면`,\"data-og-width\":`1780`,width:`1780`,\"data-og-height\":`702`,height:`702`,\"data-path\":`images/mobile/onesignal-fcm-configuration.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/onesignal-fcm-configuration.png?w=280\u0026fit=max\u0026auto=format\u0026n=uWz0BIZj_JUi1RGq\u0026q=85\u0026s=d32e43ad6f896701de49567ea081228e 280w, https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/onesignal-fcm-configuration.png?w=560\u0026fit=max\u0026auto=format\u0026n=uWz0BIZj_JUi1RGq\u0026q=85\u0026s=d3213a281d494de779964c3bafeff58d 560w, https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/onesignal-fcm-configuration.png?w=840\u0026fit=max\u0026auto=format\u0026n=uWz0BIZj_JUi1RGq\u0026q=85\u0026s=d26d6e3c9ae027cfcaab95e3650b604e 840w, https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/onesignal-fcm-configuration.png?w=1100\u0026fit=max\u0026auto=format\u0026n=uWz0BIZj_JUi1RGq\u0026q=85\u0026s=8009ead86abfa57ed7518715b33ab831 1100w, https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/onesignal-fcm-configuration.png?w=1650\u0026fit=max\u0026auto=format\u0026n=uWz0BIZj_JUi1RGq\u0026q=85\u0026s=340a763082ecc76e247dad9007a6a5fe 1650w, https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/onesignal-fcm-configuration.png?w=2500\u0026fit=max\u0026auto=format\u0026n=uWz0BIZj_JUi1RGq\u0026q=85\u0026s=3c6391d479d0cb6bd8bd9250e53c4429 2500w`})})]}),_jsxs(Step,{title:`저장 및 계속`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Save \u0026 Continue`}),`를 클릭합니다. OneSignal이 비공개 키를 검증하고 설정 흐름의 다음 단계로 이동하며, 여기에서 SDK를 선택합니다.`]}),_jsx(Warning,{children:_jsxs(_components.p,{children:[`대시보드에 `,_jsx(_components.strong,{children:`Invalid request`}),` 또는 기타 오류가 표시되면 Service Account에 하나 이상의 필수 역할이 누락되었을 가능성이 있습니다. `,_jsx(_components.a,{href:`#how-do-i-check-my-service-account-permissions`,children:`Service Account 권한은 어떻게 확인하나요?`}),`를 참조하세요.`]})})]})]}),`\n`,_jsx(Check,{children:_jsxs(_components.p,{children:[`OneSignal 앱이 Firebase Cloud Messaging (V1)에 연결되었습니다. 다음으로 사용 중인 SDK에 맞는 `,_jsx(_components.a,{href:`/docs/ko/mobile-sdk-setup`,children:`모바일 SDK 설정`}),`을 따라 앱에서 OneSignal을 설치하고 초기화하세요.`]})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`faq`,children:`FAQ`}),`\n`,_jsx(Heading,{level:`3`,id:`how-do-i-check-my-service-account-permissions`,children:`Service Account 권한은 어떻게 확인하나요? \\\\`}),`\n`,_jsxs(_components.p,{children:[`Service Account 권한은 Firebase 콘솔이 아닌 `,_jsx(_components.strong,{children:`Google Cloud Console`}),`에서 관리됩니다. OneSignal에 업로드한 비공개 키의 Service Account는 다음 두 가지를 모두 가지고 있어야 합니다:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`cloudmessaging.messages.create`}),` — `,_jsx(_components.strong,{children:`Firebase Cloud Messaging API Admin`}),`(`,_jsx(_components.code,{children:`roles/firebasecloudmessaging.admin`}),`)에 의해 부여됨.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`firebase.projects.get`}),` — `,_jsx(_components.strong,{children:`Firebase Viewer`}),`(`,_jsx(_components.code,{children:`roles/firebase.viewer`}),`)에 의해 부여됨.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Firebase Admin`}),`(`,_jsx(_components.code,{children:`roles/firebase.admin`}),`), `,_jsx(_components.strong,{children:`Editor`}),` 또는 `,_jsx(_components.strong,{children:`Owner`}),`와 같은 더 광범위한 역할도 두 권한을 모두 포함하므로 요구 사항을 충족합니다. OneSignal 전용 Service Account의 경우, 비공개 키가 노출되었을 때의 영향을 제한하기 위해 위의 좁은 쌍을 선호하세요.`]}),`\n`,_jsxs(_components.p,{children:[`Service Account 비공개 키를 업로드한 후 OneSignal 대시보드에 `,_jsx(_components.strong,{children:`Invalid request`}),`가 표시되면, 누락된 역할이 가장 일반적인 원인입니다.`]}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Google Cloud Console에서 IAM 열기`,children:_jsxs(_components.p,{children:[_jsx(_components.a,{href:`https://console.cloud.google.com/`,children:`Google Cloud Console`}),`에 로그인하고 Firebase 앱과 연결된 프로젝트를 선택한 후 `,_jsx(_components.strong,{children:`IAM 및 관리 > IAM`}),`으로 이동합니다.`]})}),_jsx(Step,{title:`Service Account 찾기`,children:_jsxs(_components.p,{children:[`주체 이메일을 업로드한 비공개 키의 `,_jsx(_components.code,{children:`client_email`}),` 필드와 일치시킵니다.`]})}),_jsx(Step,{title:`누락된 역할 추가`,children:_jsxs(_components.p,{children:[`연필(편집) 아이콘을 클릭한 다음 `,_jsx(_components.strong,{children:`다른 역할 추가`}),`를 클릭하여 아직 할당되지 않은 역할을 추가합니다.`]})}),_jsx(Step,{title:`저장`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`저장`}),`을 클릭합니다. IAM 변경 사항이 적용되는 데 몇 분이 걸릴 수 있습니다.`]})})]}),`\n`,_jsx(Heading,{level:`3`,id:`”this-configuration-is-for-a-different-firebase-project”가-표시되는-이유는-무엇인가요`,children:`”This configuration is for a different Firebase Project”가 표시되는 이유는 무엇인가요?`}),`\n`,_jsx(_components.p,{children:`이 오류는 업로드한 비공개 키가 다른 Firebase 프로젝트(다른 Sender ID)에 속할 때 발생합니다.`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`해결책`}),`: 원래 Firebase 프로젝트의 비공개 키를 사용하세요. 사용할 수 없는 경우 앱 ID와 함께 `,_jsx(_components.code,{children:`support@onesignal.com`}),`에 문의하세요. 프로젝트를 전환하면 푸시 토큰이 재설정됩니다. 사용자는 푸시를 다시 받으려면 앱을 다시 열어야 합니다.`]}),`\n`,_jsx(Heading,{level:`3`,id:`sender-id를-변경할-수-있나요`,children:`Sender ID를 변경할 수 있나요?`}),`\n`,_jsx(_components.p,{children:`예, 하지만 기존 사용자에게 영향을 미칩니다.`}),`\n`,_jsx(_components.p,{children:`기기 토큰은 원래 Sender ID에 묶여 있습니다. 이를 변경하면 기존 토큰이 무효화됩니다.`}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`사용자가 앱을 다시 열고 새 토큰을 생성할 때까지 푸시 알림 수신이 중단됩니다.`})}),`\n`,_jsxs(_components.p,{children:[`도움이 필요한 경우 앱 ID와 함께 `,_jsx(_components.code,{children:`support@onesignal.com`}),`에 문의하세요.`]}),`\n`,_jsx(Heading,{level:`3`,id:`onesignal에서-sender-id가-보이지-않는-이유는-무엇인가요`,children:`OneSignal에서 Sender ID가 보이지 않는 이유는 무엇인가요?`}),`\n`,_jsxs(_components.p,{children:[`Firebase 서버 키가 `,_jsx(_components.code,{children:`AIz...`}),`처럼 보이면 오래된 Google Cloud Messaging(GCM) 설정을 사용 중일 가능성이 큽니다. 새 Firebase 프로젝트를 만들고 Service Account 비공개 키를 업로드하세요.`]}),`\n`,_jsx(Heading,{level:`3`,id:`fcm-v1로-전환할-때-코드를-업데이트해야-하나요`,children:`FCM V1로 전환할 때 코드를 업데이트해야 하나요?`}),`\n`,_jsx(_components.p,{children:`앱 또는 SDK 변경은 필요하지 않습니다. 이는 대시보드만 업데이트하는 것입니다.`}),`\n`,_jsx(Heading,{level:`3`,id:`fcm-v1로-전환하는-마감일은-언제인가요`,children:`FCM V1로 전환하는 마감일은 언제인가요?`}),`\n`,_jsxs(_components.p,{children:[`Google의 레거시 FCM API는 이제 완전히 사용 중단되었습니다. 여전히 레거시 API를 사용하고 있다면, `,_jsx(_components.strong,{children:`즉시 FCM V1로 마이그레이션해야 합니다`}),`.`]}),`\n`,_jsx(Heading,{level:`3`,id:`어떤-앱이-여전히-레거시-api를-사용하고-있는지-어떻게-확인할-수-있나요`,children:`어떤 앱이 여전히 레거시 API를 사용하고 있는지 어떻게 확인할 수 있나요?`}),`\n`,_jsxs(_components.p,{children:[`각 앱에 대해 `,_jsx(_components.a,{href:`/reference/view-an-app`,children:`View an app`}),` API를 호출하고 응답의 `,_jsx(_components.code,{children:`fcm_v1_service_account_json`}),` 필드를 확인하세요:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`존재하고 비어있지 않음`}),`: 앱이 FCM V1을 사용 중입니다.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`누락되었거나 비어있음`}),`: 앱이 FCM V1로 구성되지 않았습니다. 해당 앱이 Android 푸시를 전송하는 경우, 여전히 레거시 API를 사용 중이며 마이그레이션이 필요합니다.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`앱과 앱 ID를 먼저 나열하려면 `,_jsx(_components.a,{href:`/reference/view-apps`,children:`View apps`}),` API를 사용하세요.`]}),`\n`,_jsx(Heading,{level:`3`,id:`what-is-firebase-cloud-messaging-and-why-does-onesignal-need-a-service-account-private-key`,children:`Firebase Cloud Messaging이란 무엇이며, OneSignal에는 왜 Service Account 비공개 키가 필요한가요? \\\\`}),`\n`,_jsxs(_components.p,{children:[`**Firebase Cloud Messaging (FCM)**은 Android 기기에 푸시 알림을 전달하는 Google의 서비스입니다. `,_jsx(_components.strong,{children:`Service Account`}),`는 OneSignal이 Firebase 프로젝트에 인증하기 위해 사용하는 Google 신원이며, `,_jsx(_components.strong,{children:`비공개 키`}),`는 신원을 증명하는 JSON 파일입니다. 비공개 키를 업로드하면 OneSignal이 Firebase를 통해 사용자를 대신해 푸시를 전송할 권한을 부여받게 됩니다. 자세한 내용은 `,_jsx(_components.a,{href:`https://cloud.google.com/iam/docs/service-account-overview`,children:`Google의 Service Account 문서`}),`를 참조하세요.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`관련-페이지`,children:`관련 페이지`}),`\n`,_jsxs(Columns,{cols:2,children:[_jsx(Card,{title:`모바일 SDK 설정`,icon:`mobile-screen`,href:`/docs/ko/mobile-sdk-setup`,children:_jsx(_components.p,{children:`Android 앱에서 OneSignal SDK를 설치하고 초기화합니다.`})}),_jsx(Card,{title:`모바일 푸시 설정`,icon:`bell`,href:`/docs/ko/mobile-push-setup`,children:_jsx(_components.p,{children:`Android, iOS 및 기타 모바일 플랫폼별 설정 단계.`})}),_jsx(Card,{title:`Huawei 푸시 설정`,icon:`mobile`,href:`/docs/ko/authorize-onesignal-to-send-huawei-push`,children:_jsx(_components.p,{children:`Huawei App Gallery를 통해 배포되는 Huawei 앱에 OneSignal이 푸시를 보낼 수 있도록 승인합니다.`})}),_jsx(Card,{title:`웹 푸시 설정`,icon:`globe`,href:`/docs/ko/web-push-setup`,children:_jsx(_components.p,{children:`웹사이트용 푸시 알림을 구성합니다.`})})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Android Firebase 자격 증명","description":"OneSignal에서 Firebase Cloud Messaging(FCM) Service Account 자격 증명을 구성하여 Google Play 스토어의 앱에 Android 푸시 알림을 활성화하세요.","keywords":["Firebase Cloud Messaging","FCM API V1","Android 푸시 알림","Firebase Service Account","FCM JSON 키"],"href":"/docs/ko/android-firebase-credentials"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"요구 사항","slug":"요구-사항","depth":2,"children":[]},{"title":"Firebase Service Account 비공개 키 생성 \\","slug":"create-a-firebase-service-account-private-key","depth":2,"children":[]},{"title":"Service Account 비공개 키를 OneSignal에 업로드","slug":"service-account-비공개-키를-onesignal에-업로드","depth":2,"children":[]},{"title":"FAQ","slug":"faq","depth":2,"children":[{"title":"Service Account 권한은 어떻게 확인하나요? \\","slug":"how-do-i-check-my-service-account-permissions","depth":3,"children":[]},{"title":"”This configuration is for a different Firebase Project”가 표시되는 이유는 무엇인가요?","slug":"”this-configuration-is-for-a-different-firebase-project”가-표시되는-이유는-무엇인가요","depth":3,"children":[]},{"title":"Sender ID를 변경할 수 있나요?","slug":"sender-id를-변경할-수-있나요","depth":3,"children":[]},{"title":"OneSignal에서 Sender ID가 보이지 않는 이유는 무엇인가요?","slug":"onesignal에서-sender-id가-보이지-않는-이유는-무엇인가요","depth":3,"children":[]},{"title":"FCM V1로 전환할 때 코드를 업데이트해야 하나요?","slug":"fcm-v1로-전환할-때-코드를-업데이트해야-하나요","depth":3,"children":[]},{"title":"FCM V1로 전환하는 마감일은 언제인가요?","slug":"fcm-v1로-전환하는-마감일은-언제인가요","depth":3,"children":[]},{"title":"어떤 앱이 여전히 레거시 API를 사용하고 있는지 어떻게 확인할 수 있나요?","slug":"어떤-앱이-여전히-레거시-api를-사용하고-있는지-어떻게-확인할-수-있나요","depth":3,"children":[]},{"title":"Firebase Cloud Messaging이란 무엇이며, OneSignal에는 왜 Service Account 비공개 키가 필요한가요? \\","slug":"what-is-firebase-cloud-messaging-and-why-does-onesignal-need-a-service-account-private-key","depth":3,"children":[]}]},{"title":"관련 페이지","slug":"관련-페이지","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/onesignal/e069c1b9f3157e14/hotjar-koala.js","/_mintlify/custom/onesignal/3e5d03885ab32f49/intercom.js","/_mintlify/custom/onesignal/dbb7af4794d1b586/munchkin-marketo.js"],"subdomain":"onesignal","siteName":"OneSignal Documentation","title":"Android Firebase 자격 증명 - OneSignal Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/docs/en/android-firebase-credentials","matchLevel":1},"cn":{"href":"/docs/cn/android-firebase-credentials","matchLevel":1},"ko":{"href":"/docs/ko/android-firebase-credentials","matchLevel":0},"ja":{"href":"/docs/ja/android-firebase-credentials","matchLevel":1},"tr":{"href":"/docs/tr/android-firebase-credentials","matchLevel":1},"pt-BR":{"href":"/docs/pt-BR/android-firebase-credentials","matchLevel":1},"es":{"href":"/docs/es/android-firebase-credentials","matchLevel":1},"fr":{"href":"/docs/fr/android-firebase-credentials","matchLevel":1}}},"lastModified":"2026-06-27T01:43:13.987Z","originalFileLocation":"docs/ko/android-firebase-credentials.mdx","locale":"ko"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"OneSignal에서 Firebase Cloud Messaging(FCM) Service Account 자격 증명을 구성하여 Google Play 스토어의 앱에 Android 푸시 알림을 활성화하세요.\">\u003cmeta data-mint-head name=\"application-name\" content=\"OneSignal Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/onesignal/eCiRydtW5fLfLRWp/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/onesignal/eCiRydtW5fLfLRWp/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/onesignal/eCiRydtW5fLfLRWp/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/onesignal/eCiRydtW5fLfLRWp/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/onesignal/eCiRydtW5fLfLRWp/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/onesignal/eCiRydtW5fLfLRWp/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/onesignal/eCiRydtW5fLfLRWp/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/onesignal/eCiRydtW5fLfLRWp/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/onesignal/eCiRydtW5fLfLRWp/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Android Firebase 자격 증명 - OneSignal Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"OneSignal에서 Firebase Cloud Messaging(FCM) Service Account 자격 증명을 구성하여 Google Play 스토어의 앱에 Android 푸시 알림을 활성화하세요.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"OneSignal Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://documentation.onesignal.com/docs/ko/android-firebase-credentials\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://onesignal.mintlify.site/_mintlify/api/og/v2?division=%ED%94%8C%EB%9E%AB%ED%8F%BC+%EC%9E%90%EA%B2%A9+%EC%A6%9D%EB%AA%85+%EC%84%A4%EC%A0%95\u0026amp;title=Android+Firebase+%EC%9E%90%EA%B2%A9+%EC%A6%9D%EB%AA%85\u0026amp;description=OneSignal%EC%97%90%EC%84%9C+Firebase+Cloud+Messaging%28FCM%29+Service+Account+%EC%9E%90%EA%B2%A9+%EC%A6%9D%EB%AA%85%EC%9D%84+%EA%B5%AC%EC%84%B1%ED%95%98%EC%97%AC+Google+Play+%EC%8A%A4%ED%86%A0%EC%96%B4%EC%9D%98+%EC%95%B1%EC%97%90+Android+%ED%91%B8%EC%8B%9C+%EC%95%8C%EB%A6%BC%EC%9D%84+%ED%99%9C%EC%84%B1%ED%99%94%ED%95%98%EC%84%B8%EC%9A%94.\u0026amp;theme=12e705baa88dc8cc6d7a9877\u0026amp;signature=473645f7beffeb93cbbe6a238416948660c9dcbb4cc7460747ab9de4f0e53e21\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Android Firebase 자격 증명 - OneSignal Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"OneSignal에서 Firebase Cloud Messaging(FCM) Service Account 자격 증명을 구성하여 Google Play 스토어의 앱에 Android 푸시 알림을 활성화하세요.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://onesignal.mintlify.site/_mintlify/api/og/v2?division=%ED%94%8C%EB%9E%AB%ED%8F%BC+%EC%9E%90%EA%B2%A9+%EC%A6%9D%EB%AA%85+%EC%84%A4%EC%A0%95\u0026amp;title=Android+Firebase+%EC%9E%90%EA%B2%A9+%EC%A6%9D%EB%AA%85\u0026amp;description=OneSignal%EC%97%90%EC%84%9C+Firebase+Cloud+Messaging%28FCM%29+Service+Account+%EC%9E%90%EA%B2%A9+%EC%A6%9D%EB%AA%85%EC%9D%84+%EA%B5%AC%EC%84%B1%ED%95%98%EC%97%AC+Google+Play+%EC%8A%A4%ED%86%A0%EC%96%B4%EC%9D%98+%EC%95%B1%EC%97%90+Android+%ED%91%B8%EC%8B%9C+%EC%95%8C%EB%A6%BC%EC%9D%84+%ED%99%9C%EC%84%B1%ED%99%94%ED%95%98%EC%84%B8%EC%9A%94.\u0026amp;theme=12e705baa88dc8cc6d7a9877\u0026amp;signature=473645f7beffeb93cbbe6a238416948660c9dcbb4cc7460747ab9de4f0e53e21\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/onesignal/eCiRydtW5fLfLRWp/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"OneSignal Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#3A3DB3\">\u003clink data-mint-head rel=\"canonical\" href=\"https://documentation.onesignal.com/docs/ko/android-firebase-credentials\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/ko/android-firebase-credentials.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ko\" href=\"https://documentation.onesignal.com/docs/ko/android-firebase-credentials\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://documentation.onesignal.com/docs/en/android-firebase-credentials\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh\" href=\"https://documentation.onesignal.com/docs/cn/android-firebase-credentials\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ja\" href=\"https://documentation.onesignal.com/docs/ja/android-firebase-credentials\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"tr\" href=\"https://documentation.onesignal.com/docs/tr/android-firebase-credentials\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"pt-BR\" href=\"https://documentation.onesignal.com/docs/pt-BR/android-firebase-credentials\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"es\" href=\"https://documentation.onesignal.com/docs/es/android-firebase-credentials\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"fr\" href=\"https://documentation.onesignal.com/docs/fr/android-firebase-credentials\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://documentation.onesignal.com/docs/en/android-firebase-credentials\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://documentation.onesignal.com/#organization\",\"name\":\"OneSignal Documentation\",\"url\":\"https://documentation.onesignal.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/onesignal/yJcueeDCO7UpHnnY/logo/OneSignal-Logo.svg?fit=max\u0026auto=format\u0026n=yJcueeDCO7UpHnnY\u0026q=85\u0026s=1fcfb6fef6d820fd9d99c74850711107\"}},{\"@type\":\"WebSite\",\"@id\":\"https://documentation.onesignal.com#website\",\"name\":\"OneSignal Documentation\",\"url\":\"https://documentation.onesignal.com\",\"publisher\":{\"@id\":\"https://documentation.onesignal.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://documentation.onesignal.com/docs/ko/android-firebase-credentials#webpage\",\"url\":\"https://documentation.onesignal.com/docs/ko/android-firebase-credentials\",\"name\":\"Android Firebase 자격 증명\",\"description\":\"OneSignal에서 Firebase Cloud Messaging(FCM) Service Account 자격 증명을 구성하여 Google Play 스토어의 앱에 Android 푸시 알림을 활성화하세요.\",\"dateModified\":\"2026-06-27T01:43:13.987Z\",\"isPartOf\":{\"@id\":\"https://documentation.onesignal.com#website\"},\"breadcrumb\":{\"@id\":\"https://documentation.onesignal.com/docs/ko/android-firebase-credentials#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://documentation.onesignal.com/docs/ko/android-firebase-credentials#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"모바일 SDKs\",\"item\":\"https://documentation.onesignal.com/docs/ko/mobile-sdk-setup\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"모바일 SDK 설정\",\"item\":\"https://documentation.onesignal.com/docs/ko/mobile-sdk-setup\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Android Firebase 자격 증명\",\"item\":\"https://documentation.onesignal.com/docs/ko/android-firebase-credentials\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://documentation.onesignal.com/docs/ko/android-firebase-credentials#article\",\"headline\":\"Android Firebase 자격 증명\",\"name\":\"Android Firebase 자격 증명\",\"description\":\"OneSignal에서 Firebase Cloud Messaging(FCM) Service Account 자격 증명을 구성하여 Google Play 스토어의 앱에 Android 푸시 알림을 활성화하세요.\",\"url\":\"https://documentation.onesignal.com/docs/ko/android-firebase-credentials\",\"mainEntityOfPage\":{\"@id\":\"https://documentation.onesignal.com/docs/ko/android-firebase-credentials#webpage\"},\"dateModified\":\"2026-06-27T01:43:13.987Z\",\"keywords\":\"Firebase Cloud Messaging, FCM API V1, Android 푸시 알림, Firebase Service Account, FCM JSON 키\",\"publisher\":{\"@id\":\"https://documentation.onesignal.com/#organization\"},\"isPartOf\":{\"@id\":\"https://documentation.onesignal.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"OneSignal Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"OneSignal Documentation","nav":{"global":null,"languages":[{"language":"en","pages":[{"title":"en","href":"/docs/en/android-firebase-credentials"}]},{"language":"cn","pages":[{"title":"cn","href":"/docs/cn/android-firebase-credentials"}]},{"language":"ko","tabs":[{"tab":"홈","pages":[{"title":"홈","href":"/docs/ko/home"}]},{"tab":"사용자 가이드","pages":[{"title":"사용자 가이드","href":"/docs/ko/quickstart-guide"}]},{"tab":"개발자 가이드","groups":[{"group":"개발자 문서","pages":[{"title":"개발자","href":"/docs/ko/developers"},{"title":"신원 확인","href":"/docs/ko/identity-verification"},{"group":"사용자 모델","pages":[{"title":"사용자 모델 및 마이그레이션 가이드","href":"/docs/ko/user-model-migration-guide"},{"title":"모바일 SDK 매핑","href":"/docs/ko/device-user-model-mobile-sdk-mapping"},{"title":"웹 SDK 매핑","href":"/docs/ko/device-user-model-web-sdk-mapping"}]}]},{"group":"모바일 SDKs","pages":[{"group":"모바일 SDK 설정","pages":[{"title":"모바일 SDK 설정","description":"Android, iOS, Huawei 및 React Native, Flutter, Unity와 같은 크로스 플랫폼 프레임워크용 OneSignal SDK를 설정합니다.","href":"/docs/ko/mobile-sdk-setup"},{"group":"플랫폼 자격 증명 설정","pages":[{"title":"Android Firebase 자격 증명","href":"/docs/ko/android-firebase-credentials"},{"title":"iOS p8 토큰 기반 APNs 연결","description":".p8 인증 키를 설정하여 OneSignal을 통해 iOS 또는 macOS 앱을 Apple Push Notification service(APNs)에 연결합니다.","href":"/docs/ko/ios-p8-token-based-connection-to-apns"},{"title":"iOS p12 인증서 생성","href":"/docs/ko/ios-p12-generate-certificates"},{"title":"Amazon API 키 생성","href":"/docs/ko/generate-an-amazon-api-key"},{"title":"Huawei 승인","href":"/docs/ko/authorize-onesignal-to-send-huawei-push"}]},{"title":"iOS SDK 설정","href":"/docs/ko/ios-sdk-setup"},{"title":"Android SDK 설정","href":"/docs/ko/android-sdk-setup"},{"title":"Unity SDK 설정","href":"/docs/ko/unity-sdk-setup"},{"title":"React Native SDK 설정","href":"/docs/ko/react-native-sdk-setup"},{"title":"Expo SDK 설정","href":"/docs/ko/react-native-expo-sdk-setup"},{"title":"Flutter SDK 설정","href":"/docs/ko/flutter-sdk-setup"},{"title":"Flutterflow SDK 설정","href":"/docs/ko/flutterflow-sdk-setup"},{"title":"Cordova SDK 설정","href":"/docs/ko/cordova-sdk-setup"},{"title":"Capacitor SDK 설정","href":"/docs/ko/capacitor-sdk-setup"},{"title":".NET MAUI SDK 설정","href":"/docs/ko/net-sdk-setup"},{"title":"Amazon SDK 설정","href":"/docs/ko/amazon-sdk-setup"},{"title":"Huawei SDK 설정","href":"/docs/ko/huawei-sdk-setup"}]},{"group":"모바일 SDK 참조","pages":[{"title":"모바일 SDK 레퍼런스","href":"/docs/ko/mobile-sdk-reference"},{"title":"Mobile Service Extensions","href":"/docs/ko/service-extensions"},{"title":"알림 트레이 관리","href":"/docs/ko/managing-the-notification-tray"},{"title":"OSNotification payload","href":"/docs/ko/osnotification-payload"},{"title":"iOS: App Clip 지원","href":"/docs/ko/app-clip-support"}]},{"group":"모바일 SDK 문제 해결","pages":[{"title":"Mobile SDK 문제 해결","href":"/docs/ko/mobile-troubleshooting"},{"title":"디버그 로그 가져오기","href":"/docs/ko/capturing-a-debug-log"}]}]},{"group":"웹 SDKs","pages":[{"group":"웹 SDK 설정","pages":[{"title":"웹 SDK 설정","href":"/docs/ko/web-sdk-setup"},{"title":"iOS 웹 푸시 설정","href":"/docs/ko/web-push-for-ios"},{"title":"OneSignal service worker","href":"/docs/ko/onesignal-service-worker"},{"title":"OneSignal Web SDK를 사용한 사용자 지정 코드 웹 푸시 설정","href":"/docs/ko/web-push-custom-code-setup"},{"title":"Google Tag Manager 설정","href":"/docs/ko/google-tag-manager"},{"title":"Angular 웹 SDK 설정","href":"/docs/ko/angular-setup"},{"title":"ReactJS 및 NextJS 설정","href":"/docs/ko/react-js-setup"},{"title":"Vue JS Web SDK 설정","href":"/docs/ko/vue-js-setup"}]},{"title":"웹 SDK 참조","href":"/docs/ko/web-sdk-reference"},{"group":"웹 SDK 문제 해결","pages":[{"title":"Web SDK 문제 해결","href":"/docs/ko/troubleshooting-web-push"},{"title":"캐시 지우기 및 푸시 권한 재설정","href":"/docs/ko/clearing-cache-and-resetting-push-permissions"},{"title":"웹 푸시 Webhook","href":"/docs/ko/webhooks"}]}]},{"group":"실시간 현황","pages":[{"title":"Live Activities 개발자 설정","href":"/docs/ko/live-activities-developer-setup"},{"title":"크로스 플랫폼 Live Activity SDK 설정","href":"/docs/ko/cross-platform-live-activity-setup"},{"title":"Android Live Update 알림","href":"/docs/ko/android-live-notifications"}]},{"group":"데스크탑 \u0026 워치 설정","pages":[{"title":"macOS 앱 설정","href":"/docs/ko/macos-app-setup"},{"title":"Windows 앱 설정","href":"/docs/ko/windows-app-setup"},{"title":"watchOS 및 Wear OS 지원","href":"/docs/ko/watchos-and-wear-os-support"}]}]},{"tab":"튜토리얼","pages":[{"title":"튜토리얼","href":"/docs/ko/tutorials"}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/reference/rest-api-overview"}]},{"tab":"Release Notes","pages":[{"title":"Release Notes","href":"/release-notes/changelog"}]}],"global":{"anchors":[{"anchor":"Blog","icon":"newspaper","href":"https://onesignal.com/blog"},{"anchor":"GitHub","icon":"github","href":"https://github.com/OneSignal"},{"anchor":"YouTube","icon":"youtube","href":"https://www.youtube.com/@onesignalofficial/playlists"}]}},{"language":"ja","pages":[{"title":"ja","href":"/docs/ja/android-firebase-credentials"}]},{"language":"tr","pages":[{"title":"tr","href":"/docs/tr/android-firebase-credentials"}]},{"language":"pt-BR","pages":[{"title":"pt-BR","href":"/docs/pt-BR/android-firebase-credentials"}]},{"language":"es","pages":[{"title":"es","href":"/docs/es/android-firebase-credentials"}]},{"language":"fr","pages":[{"title":"fr","href":"/docs/fr/android-firebase-credentials"}]}]},"basePath":"","title":"Android Firebase 자격 증명 - OneSignal Documentation","buildId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","deploymentId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-5Xwp92K7.js","DynamicMarkdown-BoyYAA8K.js","zoom-image-lightbox-DkE6VzSN.js","lightbox-handle-r17bVUz3.js"]}