{"id":19778899,"url":"https://github.com/dialogflow/fulfillment-firestore-nodejs","last_synced_at":"2025-07-01T13:32:27.359Z","repository":{"id":43826062,"uuid":"142181890","full_name":"dialogflow/fulfillment-firestore-nodejs","owner":"dialogflow","description":"Integrating Firebase's Firestore database with Dialogflow","archived":false,"fork":false,"pushed_at":"2024-12-18T16:58:27.000Z","size":455,"stargazers_count":81,"open_issues_count":20,"forks_count":39,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-05-25T23:03:23.655Z","etag":null,"topics":["actions-on-google","add-to-dialogflow","dialogflow-fulfillment-nodejs","firestore-database"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dialogflow.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-07-24T15:59:40.000Z","updated_at":"2024-08-18T18:17:59.000Z","dependencies_parsed_at":"2024-11-12T05:32:41.816Z","dependency_job_id":"9788f1ad-6925-4e45-ac93-b94002dd7f0e","html_url":"https://github.com/dialogflow/fulfillment-firestore-nodejs","commit_stats":{"total_commits":3,"total_committers":2,"mean_commits":1.5,"dds":"0.33333333333333337","last_synced_commit":"56a11b5fc3b74cf75ca5bbed35035c323c9c4fb9"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dialogflow/fulfillment-firestore-nodejs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dialogflow%2Ffulfillment-firestore-nodejs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dialogflow%2Ffulfillment-firestore-nodejs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dialogflow%2Ffulfillment-firestore-nodejs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dialogflow%2Ffulfillment-firestore-nodejs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dialogflow","download_url":"https://codeload.github.com/dialogflow/fulfillment-firestore-nodejs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dialogflow%2Ffulfillment-firestore-nodejs/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262972436,"owners_count":23393038,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["actions-on-google","add-to-dialogflow","dialogflow-fulfillment-nodejs","firestore-database"],"created_at":"2024-11-12T05:32:34.872Z","updated_at":"2025-07-01T13:32:27.218Z","avatar_url":"https://github.com/dialogflow.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dialogflow Firestore Sample\n+ This sample demonstrates how to connect Dialogflow to the Firestore database.\n+ Dialogflow parses users' requests and sends requests to Firebase function indicating whether it should add or retrieve an entry from the Firestore database. The Firebase function queries the database to add or retrieve the entry and then compiles the proper response to the user. You can speak to your Dialogflow agent and tell it to write something to the database or retrieve it.\n+ The sample will save what you tell it to save into the database as well as retrieve the value you store previously.\n+ When you speak to your Dialogflow agent a webhook call is sent to Firebase functions which talks to the Firestore database to retrieve or add a entry as see below:\n\nThis sample is meant to be a starting point for anyone looking to connect a database to their Dialogflow agent and can be expanded to store users preferences, retrieve relevant data from your systems or enable your users to collaborate via chat/voice.\n\n```\nDialogflow → Webhook Request → Firebase Function → Firestore Database\n```\n\n## Setup\n\n### Dialogflow and Fulfillment Setup\nTo create this agent from our template:\n\n\u003ca href=\"https://console.dialogflow.com/api-client/oneclick?templateUrl=https://oneclickgithub.appspot.com/dialogflow/fulfillment-firestore-nodejs\" target=\"blank\"\u003e\n  \u003cimg src=\"https://dialogflow.com/images/deploy.png\"\u003e\n\u003c/a\u003e\n\n### Firestore Setup\n1. In Dialogflow's console, in the left menu \u003e go to **Fulfillment** \u003e **Enable Inline Editor** \u003e **Deploy**.\n2. At the bottom, go to **View execution logs in the Firebase console**.\n3. In the Firebase console, go to **Database** \u003e **Create database**.\n4. Select **Start in locked mode** \u003e **Enable**.\n\n## Running the sample\n1. In [Dialogflow's console](https://console.dialogflow.com), in the Dialogflow simulator on the right, query your Dialogflow agent with `Write Buzz Aldrin to the database` and then query `What's in the database?` to get the response \"Buzz Aldrin\". \n\n## Related Samples\n| Name       | Language           |\n| ------------- |:-------------:|\n| [Fulfillment \u0026 Regex Validation](https://github.com/dialogflow/fulfillment-regex-nodejs)      | Node.js |\n| [Weather: Fulfillment \u0026 WWO API](https://github.com/dialogflow/fulfillment-weather-nodejs)     | Node.js      |  \n| [Bike Shop: Fulfillment \u0026 Google Calendar API](https://github.com/dialogflow/fulfillment-bike-shop-nodejs)| Node.js |\n| [Temperature Trivia: Fulfillment \u0026 Actions on Google](https://github.com/dialogflow/fulfillment-temperature-converter-nodejs) | Node.js |\n| [Fulfillment \u0026 Actions on Google](https://github.com/dialogflow/fulfillment-actions-library-nodejs) | Node.js |\n| [Fulfillment \u0026 Firestore Database](https://github.com/dialogflow/fulfillment-firestore-nodejs) | Node.js |\n| [Multi-language/locale](https://github.com/dialogflow/fulfillment-multi-locale-nodejs) | Node.js |\n| [Basic Slot Filling](https://github.com/dialogflow/fulfillment-slot-filling-nodejs) | Node.js |\n\nFor Fulfillment Webhook [JSON Requests \u0026 Responses](https://github.com/dialogflow/fulfillment-webhook-json).\n\n## References \u0026 Issues\n+ Questions? Try [StackOverflow](https://stackoverflow.com/questions/tagged/dialogflow) or [Dialogflow Developer Community](https://plus.google.com/communities/103318168784860581977).\n+ Find a bug? Report it on [GitHub](https://github.com/dialogflow/fulfillment-webhook-json/issues).\n+ Dialogflow [Documentation](https://dialogflow.com/docs/getting-started/basics).\n+ [Dialogflow's console](https://console.dialogflow.com).\n\n## How to make contributions?\nPlease read and follow the steps in the CONTRIBUTING.md.\n\n## License\nSee [LICENSE](LICENSE).\n\n## Terms\nYour use of this sample is subject to, and by using or downloading the sample files you agree to comply with, the [Google APIs Terms of Service](https://developers.google.com/terms/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdialogflow%2Ffulfillment-firestore-nodejs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdialogflow%2Ffulfillment-firestore-nodejs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdialogflow%2Ffulfillment-firestore-nodejs/lists"}