웹훅 처리를 빌드한 후에는 프로덕션에 배포하고 연결하세요.
작업에 추가합니다. 다음 단계에서는 환경을 설정하는 방법을 보여줍니다.
프로덕션 호스팅을 위해 Firebase용 Cloud Functions에 배포합니다. 하지만
HTTPS 요청을 지원하는 웹 호스팅 플랫폼을 선택하고
처리를 호스팅해야 합니다
이미 웹훅을 웹 호스팅 플랫폼에 배포한 경우 다음 작업을 수행할 수 있습니다.
작업에 웹훅 연결로 건너뜁니다. 참고: 최종
아래 프로세스의 단계는 Dialogflow를 사용하는지 아니면
Actions SDK를 도입했습니다.
Firebase CLI를 설정하고 초기화합니다. 다음 명령어가
EACCES 오류가 표시되면
npm 권한 변경을 참조하세요.
npminstall-gfirebase-tools
Google 계정으로 Firebase 도구를 인증합니다.
firebase login
작업 프로젝트 디렉터리로 이동하여 Firebase를 초기화합니다. 목표:
서비스에 설정할 Firebase CLI 기능을 선택하라는 메시지가 표시됩니다.
작업 프로젝트 사용할 만한 Functions 및 기타 기능을 선택하세요.
그런 다음 Enter 키를 눌러 확인하고 계속 진행합니다.
cd <cloud_function_dir>
firebase init
다음을 사용하여 Firebase 도구를 작업 프로젝트와 연결합니다.
화살표 키를 사용하여 프로젝트 목록을 탐색합니다.
프로젝트를 선택하면 Firebase 도구에서 Functions 설정을 시작합니다.
어떤 언어를 사용할지 물어보세요 화살표 키를 사용하여 선택하고
계속하려면 Enter 키를 누르세요.
=== Functions Setup A functions directory will be created in your project with a Node.js
package pre-configured. Functions can be deployed with firebase deploy.
? What language would you like to use to write Cloud Functions? (Use arrow keys)
> JavaScript
TypeScript
ESLint를 사용하여 잠재적 버그를 포착하고 스타일을 적용할지 선택
Y 또는 N 입력:
? Do you want to use ESLint to catch probable bugs and enforce style? (Y/n)
프롬프트에 Y를 입력하여 프로젝트 종속 항목을 가져옵니다.
? Do you want to install dependencies with npm now? (Y/n)
설정이 완료되면 다음과 비슷한 출력이 표시됩니다.
✔ Firebase initialization complete!
actions-on-google 종속 항목을 설치합니다.
cd <cloud_function_dir>/functions
npm install actions-on-google
fulfillment 종속 항목을 가져오고 fulfillment 함수를 배포합니다.
npm install
firebase deploy --only functions
배포하는 데 몇 분 정도 걸립니다. 완료되면 다음과 같은 결과가 표시됩니다.
다음과 유사합니다. 함수 URL이 필요합니다.
Dialogflow.
✔ Deploy complete! Project Console: https://console.firebase.google.com/project/exampleproject-123/overview
Function URL (cloudFunctionName): https://us-central1-exampleproject-123.cloudfunctions.net/cloudFunctionName
작업에 웹훅 연결
Dialogflow를 사용하는 경우:Dialogflow 콘솔로 이동합니다.
fulfillment에 있는 경우 웹훅 버튼을 사용 설정됨으로 전환하고
URL 필드의 URL을 함수 URL로 바꿉니다.
Actions SDK를 사용하는 경우: 객체를 만듭니다.
conversations 객체 내로 이동하여 작업에서 처리를 선언합니다.
패키지:
[null,null,["최종 업데이트: 2025-07-26(UTC)"],[[["\u003cp\u003eThis guide explains how to deploy your Action's webhook fulfillment to a production environment, primarily focusing on Cloud Functions for Firebase.\u003c/p\u003e\n"],["\u003cp\u003eYou need Node.js and the Firebase CLI installed and authenticated to deploy your fulfillment function to Firebase.\u003c/p\u003e\n"],["\u003cp\u003eThe deployment process involves initializing Firebase within your Action project, selecting the desired language and configuration options, installing necessary dependencies, and finally deploying the function.\u003c/p\u003e\n"],["\u003cp\u003eAfter successful deployment, you'll receive a Function URL which needs to be connected to your Action in Dialogflow or declared in your Action package for Actions SDK.\u003c/p\u003e\n"],["\u003cp\u003eFor quicker development iterations, consider using tools like ngrok to expose your local fulfillment to the internet, but exercise caution as this can introduce security vulnerabilities.\u003c/p\u003e\n"]]],["To deploy a webhook to production, set up a hosting environment like Cloud Functions for Firebase. First, install Node.js and the Firebase CLI, then authenticate and initialize Firebase in your project directory. Choose `Functions` and your preferred language (JavaScript or TypeScript). Install dependencies, including `actions-on-google`. Deploy using `firebase deploy --only functions`. Finally, connect the webhook to your Action: in Dialogflow, enable the webhook and input the Function URL; in Actions SDK, declare the fulfillment within the `conversations` object of your Action package.\n"],null,["# Deploy fulfillment (Dialogflow)\n\nOnce you've built your webhook fulfillment, deploy it to production and connect\nit to your Action. The following steps show you how to set up your environment\nto deploy to [Cloud Functions for Firebase](/assistant/console/firebase-services) for production hosting. However,\nyou can choose any web hosting platform that supports HTTPS requests and\nresponses to host your fulfillment.\n\nIf you have already deployed your webhook to a web hosting platform, you can\nskip to [Connect the webhook to your Action](#connect). Note that the final\nsteps in the process below differ based on whether you use Dialogflow or the\nActions SDK.\n| **Note:** Your fulfillment must respond within 5 seconds or the Assistant ends your conversation due to a timeout.\n\nDeploy to Cloud Functions for Firebase\n--------------------------------------\n\n1. [Download and install Node.js](https://nodejs.org/).\n2. Set up and initialize the Firebase CLI. If the following command fails with\n an `EACCES` error, you may need to\n [change npm permissions](https://docs.npmjs.com/getting-started/fixing-npm-permissions).\n\n npm install -g firebase-tools\n\n3. Authenticate the Firebase tool with your Google account:\n\n firebase login\n\n4. Navigate to your Action project directory and initialize Firebase. You'll be\n asked to select which Firebase CLI features you want to set up for your\n Actions project. Choose `Functions` and other features you might want to use,\n like Firestore, then press Enter to confirm and continue:\n\n cd \u003ccloud_function_dir\u003e\n firebase init\n\n5. Associate the Firebase tool with your Actions project by selecting it using\n the arrow keys to navigate the projects list:\n\n | **Note:** You can skip this step by selecting **\\[don't setup a default project\\]** , but then you will need to do this association later using the command **firebase use --project**.\n6. After choosing the project, the Firebase tool starts the Functions setup\n asking you what language you want to use. Select using the arrow keys and\n press Enter to continue.\n\n ```\n === Functions Setup\n\n A functions directory will be created in your project with a Node.js\n package pre-configured. Functions can be deployed with firebase deploy.\n\n ? What language would you like to use to write Cloud Functions? (Use arrow keys)\n \u003e JavaScript\n TypeScript\n ```\n7. Choose if you want to use ESLint to catch probable bugs and enforce style\n typing `Y` or `N`:\n\n ```\n ? Do you want to use ESLint to catch probable bugs and enforce style? (Y/n)\n ```\n8. Get the project dependencies by typing `Y` to the prompt:\n\n ```\n ? Do you want to install dependencies with npm now? (Y/n)\n ```\n\n Once the setup is completed, you'll see an output similar to the following: \n\n ```\n ✔ Firebase initialization complete!\n ```\n9. Install the **actions-on-google** dependency:\n\n cd \u003ccloud_function_dir\u003e/functions\n npm install actions-on-google\n\n10. Get the fulfillment dependencies and deploy the fulfillment function:\n\n npm install\n firebase deploy --only functions\n\n The deployment takes a few minutes. Once completed, you'll see output\n similar to the following. You'll need the **Function URL** to enter in\n Dialogflow. \n\n ```\n ✔ Deploy complete!\n\n Project Console: https://console.firebase.google.com/project/exampleproject-123/overview\n Function URL (cloudFunctionName): https://us-central1-exampleproject-123.cloudfunctions.net/cloudFunctionName\n ```\n\nConnect the webhook to your Action\n----------------------------------\n\n**If you're using Dialogflow:** In the\n[Dialogflow console](https://console.dialogflow.com), go to\n**Fulfillment** , toggle the **Webhook** button to **ENABLED** , and replace\nthe url in the **URL** field with your **Function URL**.\n\n\n**If you're using Actions SDK:** Create an object\ninside the `conversations` object to declare your fulfillment in your Action\npackage: \n\n```text\n{\n \"actions\": [\n {\n \"description\": \"Default Welcome Intent\",\n \"name\": \"MAIN\",\n \"fulfillment\": {\n \"conversationName\": \"myFulfillmentFunction\"\n },\n \"intent\": {\n \"name\": \"actions.intent.MAIN\",\n \"trigger\": {\n \"queryPatterns\": [\n \"talk to myFulfillmentFunction\"\n ]\n }\n }\n }\n ],\n \"conversations\": {\n \"myFulfillmentFunction\": {\n \"name\": \"myFulfillmentFunction\",\n \"url\": \"https://us-central1-myprojectname-ab123.cloudfunctions.net/cloudFunctionName\"\n }\n },\n \"locale\": \"en\"\n}\n```\n| **Note:** You sometimes might want to do development and testing locally on your development machine for quicker iterations. However, your fulfillment must be addressable from the internet. To work around this, you can use a tool like [ngrok](https://ngrok.io), which allows you to create a tunnel from the internet into your development machine. Be aware that this makes your machine vulnerable to attacks, so use caution if you choose this development model."]]