In Firestore, data is organized in an alternating hierarchy of collection/document/collection/document. You can read about this hierarchy here.This means that a collection path should always have an odd number of elements. In the example below, mycoll and mycoll/mydoc/mysubcoll are both valid collection paths.
Firestore collection groups allow you to run queries over multiple related collections at once (you can read more here). If the collection path refers to collection group, then check this box.
{"docsConfig":{"$schema":"https://mintlify.com/docs.json","theme":"mint","name":"Bracket","colors":{"primary":"#47689E","light":"#7F97B9","dark":"#2B3A4F"},"favicon":"/favicon.png","logo":{"light":"https://mintcdn.com/bracket/bx6DzcifAPUE0Au7/logo/light.svg?fit=max\u0026auto=format\u0026n=bx6DzcifAPUE0Au7\u0026q=85\u0026s=c72851b277e1f0dfa02b8178da42620b","dark":"https://mintcdn.com/bracket/bx6DzcifAPUE0Au7/logo/dark.svg?fit=max\u0026auto=format\u0026n=bx6DzcifAPUE0Au7\u0026q=85\u0026s=a976a75a3904568c031355265c1a1888"},"navbar":{"links":[{"label":"Blog","href":"https://www.usebracket.com/blog"}],"primary":{"type":"button","label":"Get Started","href":"https://app.usebracket.com/"}},"footer":{"socials":{"website":"https://www.usebracket.com"}},"integrations":{"amplitude":{"apiKey":"fe0ecf4d83519f7738f8bb24244f9bd7"},"hotjar":{"hjid":"3130374","hjsv":"6"}},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"bracket","hasAudioNarration":false,"actualSubdomain":"bracket","customDomains":["docs.usebracket.com"],"gitSource":{"type":"github","owner":"usebracket","repo":"documentation","deployBranch":"main","contentDirectory":"docs","mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6a20c3414d01e0d38c5e46e2","collectionId":"5acf53f3-7ad0-4a65-9a9e-8472b2712ed5","schemaVersion":"v2"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ae913e47b2166ad6023e727:success","clientVersion":"0.0.4067","searchFilterCounts":[{"language":"default","tag":"Documentation","count":31},{"language":"default","tag":"Integrations","count":21},{"language":"default","tag":"Guides","count":6},{"language":"default","tag":"Postgres","count":4},{"language":"default","tag":"Introduction","count":4},{"language":"default","tag":"Airtable","count":2},{"language":"default","tag":"Firestore","count":2},{"language":"default","tag":"Google Sheets","count":2},{"language":"default","tag":"MongoDB","count":2},{"language":"default","tag":"Notion","count":2}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"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":"vite-origin","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":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"connecting/firebase_connecting","slug":"/connecting/firebase_connecting","pageMetadata":{"title":"Connecting Firestore","sidebarTitle":"Connecting","description":"Follow these steps to sync an existing Firebase Cloud Firestore collection","href":"/connecting/firebase_connecting"},"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: \"Follow these steps to sync an existing Firebase Cloud Firestore collection\"\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`,li:`li`,ol:`ol`,p:`p`,strong:`strong`,..._provideComponents(),...props.components},{Frame,Heading,OptimizedImage,Tip,Warning}=_components;if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(Warning,{children:[`Firestore is currently only available on Bracket’s `,_jsx(_components.a,{href:`https://legacy.app.usebracket.com/`,children:`legacy app`})]}),`\n`,_jsx(Heading,{level:`2`,id:`getting-your-firestore-project-id`,children:`Getting your Firestore project ID`}),`\n`,_jsx(_components.p,{children:`There are three different ways to get your Firestore project ID:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Using the Firebase console`}),`: Click settings Project settings. The project ID is displayed in the top pane.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Using the Firebase CLI`}),`: Run `,_jsx(_components.code,{children:`firebase projects:list`}),`. The project ID is displayed along with all the Firebase projects associated with your account.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Using the Firebase Management REST API`}),`: Call `,_jsx(_components.code,{children:`projects.list`}),`. The response body contains the project ID in the `,_jsx(_components.code,{children:`FirebaseProject`}),` object.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`generating-private-keys-for-a-service-account`,children:`Generating private keys for a service account`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`Navigate to your project’s console`}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`Go to Project Settings by clicking the icon`}),`\n`]}),`\n`]}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{class:`mint-rounded-md mint-h-32`,src:`https://mintcdn.com/bracket/1whZePpi8DloDf7s/img/firebase-1.png?fit=max\u0026auto=format\u0026n=1whZePpi8DloDf7s\u0026q=85\u0026s=f64d51efae0d21fbbae5ef50ef48c6a6`,\"data-og-width\":`518`,width:`518`,\"data-og-height\":`312`,height:`312`,\"data-path\":`img/firebase-1.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/bracket/1whZePpi8DloDf7s/img/firebase-1.png?w=280\u0026fit=max\u0026auto=format\u0026n=1whZePpi8DloDf7s\u0026q=85\u0026s=19d24d36fa584d3c6b14b02d93b8301d 280w, https://mintcdn.com/bracket/1whZePpi8DloDf7s/img/firebase-1.png?w=560\u0026fit=max\u0026auto=format\u0026n=1whZePpi8DloDf7s\u0026q=85\u0026s=449cd39fb6016b035fe54e88ecb56b4d 560w, https://mintcdn.com/bracket/1whZePpi8DloDf7s/img/firebase-1.png?w=840\u0026fit=max\u0026auto=format\u0026n=1whZePpi8DloDf7s\u0026q=85\u0026s=787cf80925b41e6cffdfa0b7eba71e03 840w, https://mintcdn.com/bracket/1whZePpi8DloDf7s/img/firebase-1.png?w=1100\u0026fit=max\u0026auto=format\u0026n=1whZePpi8DloDf7s\u0026q=85\u0026s=6dc3cded7e5877497f924a00750967e4 1100w, https://mintcdn.com/bracket/1whZePpi8DloDf7s/img/firebase-1.png?w=1650\u0026fit=max\u0026auto=format\u0026n=1whZePpi8DloDf7s\u0026q=85\u0026s=fde4513a974f827481a634cab0729fb8 1650w, https://mintcdn.com/bracket/1whZePpi8DloDf7s/img/firebase-1.png?w=2500\u0026fit=max\u0026auto=format\u0026n=1whZePpi8DloDf7s\u0026q=85\u0026s=3bda15ded3f4a519c2a25757f743631a 2500w`})}),`\n`,_jsxs(_components.ol,{start:`3`,children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Click `,_jsx(_components.code,{children:`Service accounts`})]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Generate a new private key by clicking on `,_jsx(_components.code,{children:`Generate new private key`}),` and open the newly-created JSON`]}),`\n`]}),`\n`]}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{class:`mint-rounded-md mint-w-full`,src:`https://mintcdn.com/bracket/1whZePpi8DloDf7s/img/firebase-2.png?fit=max\u0026auto=format\u0026n=1whZePpi8DloDf7s\u0026q=85\u0026s=a9c8e7164074434d4b39450372615de7`,\"data-og-width\":`3840`,width:`3840`,\"data-og-height\":`1884`,height:`1884`,\"data-path\":`img/firebase-2.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/bracket/1whZePpi8DloDf7s/img/firebase-2.png?w=280\u0026fit=max\u0026auto=format\u0026n=1whZePpi8DloDf7s\u0026q=85\u0026s=e149061b92034af9c8e4dc484c116529 280w, https://mintcdn.com/bracket/1whZePpi8DloDf7s/img/firebase-2.png?w=560\u0026fit=max\u0026auto=format\u0026n=1whZePpi8DloDf7s\u0026q=85\u0026s=5239498e516fff9b7f63b2699e8e3cba 560w, https://mintcdn.com/bracket/1whZePpi8DloDf7s/img/firebase-2.png?w=840\u0026fit=max\u0026auto=format\u0026n=1whZePpi8DloDf7s\u0026q=85\u0026s=23253db2f98bb372255b839986ecde3d 840w, https://mintcdn.com/bracket/1whZePpi8DloDf7s/img/firebase-2.png?w=1100\u0026fit=max\u0026auto=format\u0026n=1whZePpi8DloDf7s\u0026q=85\u0026s=3b55e741cbeb294098b96d3fff0a4992 1100w, https://mintcdn.com/bracket/1whZePpi8DloDf7s/img/firebase-2.png?w=1650\u0026fit=max\u0026auto=format\u0026n=1whZePpi8DloDf7s\u0026q=85\u0026s=2bba6bd4cde840fd2e35c5f44b92d18f 1650w, https://mintcdn.com/bracket/1whZePpi8DloDf7s/img/firebase-2.png?w=2500\u0026fit=max\u0026auto=format\u0026n=1whZePpi8DloDf7s\u0026q=85\u0026s=63478770427e3b74a26b889f867524a6 2500w`})}),`\n`,_jsxs(Tip,{children:[`The private key should begin with `,_jsx(_components.code,{children:`-----BEGIN PRIVATE KEY-----`}),` and end with `,_jsx(_components.code,{children:`\\\\\\\\n-----END PRIVATE KEY-----\\\\\\\\n`})]}),`\n`,_jsx(Heading,{level:`2`,id:`getting-the-client-email-for-a-service-account`,children:`Getting the client email for a service account`}),`\n`,_jsxs(_components.p,{children:[`The JSON that you created by generating a private key (above) will include a `,_jsx(_components.code,{children:`client_email`}),` field. Paste that in the Bracket web app.`]}),`\n`,_jsx(Warning,{children:`This is not a personal email address`}),`\n`,_jsx(Heading,{level:`2`,id:`getting-the-collection-path`,children:`Getting the collection path`}),`\n`,_jsxs(_components.p,{children:[`In Firestore, data is organized in an alternating hierarchy of `,_jsx(_components.code,{children:`collection/document/collection/document`}),`. You can read about this hierarchy `,_jsx(_components.a,{href:`https://firebase.google.com/docs/firestore/data-model#hierarchical-data`,children:`here`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`This means that a collection path should always have an odd number of elements. In the example below, `,_jsx(_components.code,{children:`mycoll`}),` and `,_jsx(_components.code,{children:`mycoll/mydoc/mysubcoll`}),` are both valid collection paths.`]}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{class:`mint-rounded-md mint-w-full`,src:`https://mintcdn.com/bracket/1whZePpi8DloDf7s/img/firestore_collection_path_example.png?fit=max\u0026auto=format\u0026n=1whZePpi8DloDf7s\u0026q=85\u0026s=28c8f20eb478b8ea80407bde4bc55d1c`,\"data-og-width\":`479`,width:`479`,\"data-og-height\":`291`,height:`291`,\"data-path\":`img/firestore_collection_path_example.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/bracket/1whZePpi8DloDf7s/img/firestore_collection_path_example.png?w=280\u0026fit=max\u0026auto=format\u0026n=1whZePpi8DloDf7s\u0026q=85\u0026s=0f28b13c2218acda447faa36167b207e 280w, https://mintcdn.com/bracket/1whZePpi8DloDf7s/img/firestore_collection_path_example.png?w=560\u0026fit=max\u0026auto=format\u0026n=1whZePpi8DloDf7s\u0026q=85\u0026s=46d2cde30edf22a438ab9eeee9f002a4 560w, https://mintcdn.com/bracket/1whZePpi8DloDf7s/img/firestore_collection_path_example.png?w=840\u0026fit=max\u0026auto=format\u0026n=1whZePpi8DloDf7s\u0026q=85\u0026s=687dacf29691dd2d87254a61e13cf9df 840w, https://mintcdn.com/bracket/1whZePpi8DloDf7s/img/firestore_collection_path_example.png?w=1100\u0026fit=max\u0026auto=format\u0026n=1whZePpi8DloDf7s\u0026q=85\u0026s=41d82bae5e30117df7c4fa94b3084b25 1100w, https://mintcdn.com/bracket/1whZePpi8DloDf7s/img/firestore_collection_path_example.png?w=1650\u0026fit=max\u0026auto=format\u0026n=1whZePpi8DloDf7s\u0026q=85\u0026s=5f48d91d017313d4ad10dded00a014c3 1650w, https://mintcdn.com/bracket/1whZePpi8DloDf7s/img/firestore_collection_path_example.png?w=2500\u0026fit=max\u0026auto=format\u0026n=1whZePpi8DloDf7s\u0026q=85\u0026s=0a241bed2d57f8a3c4605a2f8a617e91 2500w`})}),`\n`,_jsx(Heading,{level:`2`,id:`collection-groups`,children:`Collection groups`}),`\n`,_jsxs(_components.p,{children:[`Firestore collection groups allow you to run queries over multiple related collections at once (you can read more `,_jsx(_components.a,{href:`https://firebase.blog/posts/2019/06/understanding-collection-group-queries`,children:`here`}),`). If the collection path refers to collection group, then check this box.`]})]})}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":"Connecting Firestore","sidebarTitle":"Connecting","description":"Follow these steps to sync an existing Firebase Cloud Firestore collection","href":"/connecting/firebase_connecting"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Getting your Firestore project ID","slug":"getting-your-firestore-project-id","depth":2,"children":[]},{"title":"Generating private keys for a service account","slug":"generating-private-keys-for-a-service-account","depth":2,"children":[]},{"title":"Getting the client email for a service account","slug":"getting-the-client-email-for-a-service-account","depth":2,"children":[]},{"title":"Getting the collection path","slug":"getting-the-collection-path","depth":2,"children":[]},{"title":"Collection groups","slug":"collection-groups","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"dynamicCss":".mint-h-32 {\n height: 8rem\n}\n.mint-w-full {\n width: 100%\n}\n.mint-rounded-md {\n border-radius: 0.375rem\n}","subdomain":"bracket","siteName":"Bracket","title":"Connecting Firestore - Bracket","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-01-06T22:37:30.985Z","originalFileLocation":"connecting/firebase_connecting.mdx"},"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=\"Follow these steps to sync an existing Firebase Cloud Firestore collection\">\u003cmeta data-mint-head name=\"application-name\" content=\"Bracket\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/bracket/di8HbR9wibg0--cB/_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/bracket/di8HbR9wibg0--cB/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/bracket/di8HbR9wibg0--cB/_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/bracket/di8HbR9wibg0--cB/_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/bracket/di8HbR9wibg0--cB/_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/bracket/di8HbR9wibg0--cB/_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/bracket/di8HbR9wibg0--cB/_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/bracket/di8HbR9wibg0--cB/_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/bracket/di8HbR9wibg0--cB/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Connecting Firestore - Bracket\">\u003cmeta data-mint-head property=\"og:description\" content=\"Follow these steps to sync an existing Firebase Cloud Firestore collection\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Bracket\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.usebracket.com/connecting/firebase_connecting\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://bracket.mintlify.app/_mintlify/api/og/v2?division=Firestore\u0026amp;title=Connecting+Firestore\u0026amp;description=Follow+these+steps+to+sync+an+existing+Firebase+Cloud+Firestore+collection\u0026amp;theme=2ae0fdf688d36876365309ad\u0026amp;signature=05566c72937a8c1154906dc3b0bd70266fbc04eb8530357241630e5b278fdeba\">\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=\"Connecting Firestore - Bracket\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Follow these steps to sync an existing Firebase Cloud Firestore collection\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://bracket.mintlify.app/_mintlify/api/og/v2?division=Firestore\u0026amp;title=Connecting+Firestore\u0026amp;description=Follow+these+steps+to+sync+an+existing+Firebase+Cloud+Firestore+collection\u0026amp;theme=2ae0fdf688d36876365309ad\u0026amp;signature=05566c72937a8c1154906dc3b0bd70266fbc04eb8530357241630e5b278fdeba\">\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/bracket/di8HbR9wibg0--cB/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Bracket\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#47689E\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.usebracket.com/connecting/firebase_connecting\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/connecting/firebase_connecting.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.usebracket.com/#organization\",\"name\":\"Bracket\",\"url\":\"https://docs.usebracket.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/bracket/bx6DzcifAPUE0Au7/logo/light.svg?fit=max\u0026auto=format\u0026n=bx6DzcifAPUE0Au7\u0026q=85\u0026s=c72851b277e1f0dfa02b8178da42620b\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.usebracket.com#website\",\"name\":\"Bracket\",\"url\":\"https://docs.usebracket.com\",\"publisher\":{\"@id\":\"https://docs.usebracket.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.usebracket.com/connecting/firebase_connecting#webpage\",\"url\":\"https://docs.usebracket.com/connecting/firebase_connecting\",\"name\":\"Connecting Firestore\",\"description\":\"Follow these steps to sync an existing Firebase Cloud Firestore collection\",\"dateModified\":\"2026-01-06T22:37:30.985Z\",\"isPartOf\":{\"@id\":\"https://docs.usebracket.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.usebracket.com/connecting/firebase_connecting#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.usebracket.com/connecting/firebase_connecting#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Integrations\",\"item\":\"https://docs.usebracket.com/connecting/airtable_connecting\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Connecting Firestore\",\"item\":\"https://docs.usebracket.com/connecting/firebase_connecting\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.usebracket.com/connecting/firebase_connecting#article\",\"headline\":\"Connecting Firestore\",\"name\":\"Connecting Firestore\",\"description\":\"Follow these steps to sync an existing Firebase Cloud Firestore collection\",\"url\":\"https://docs.usebracket.com/connecting/firebase_connecting\",\"mainEntityOfPage\":{\"@id\":\"https://docs.usebracket.com/connecting/firebase_connecting#webpage\"},\"dateModified\":\"2026-01-06T22:37:30.985Z\",\"publisher\":{\"@id\":\"https://docs.usebracket.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.usebracket.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Bracket\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Bracket","nav":{"global":null,"anchors":[{"anchor":"Documentation","icon":"book-open","groups":[{"group":"Introduction","pages":[{"title":"What is Bracket?","href":"/introduction"},{"title":"Quick Start","href":"/quickstart"},{"group":"Sync methods","pages":[{"title":"Polling","href":"/polling"},{"title":"Streaming","href":"/streaming"}]}]},{"group":"Guides","pages":[{"title":"Deletes","href":"/guides/deletes"},{"group":"Foreign Keys","pages":[{"title":"Postgres \u003c> Airtable Relations Guide","sidebarTitle":"Postgres \u003c> Airtable guide","href":"/guides/foreign_keys"}]},{"group":"Legacy App","pages":[{"title":"Integrations and Support","sidebarTitle":"Integrations \u0026 support","href":"/guides/legacy_integrations"},{"title":"Field mapping and field types","sidebarTitle":"Field mapping","href":"/guides/legacy_field_mapping"}]},{"title":"Primary Keys","href":"/guides/pkeys"},{"title":"Runs","href":"/guides/runs"}]},{"group":"Integrations","pages":[{"group":"Airtable","pages":[{"title":"Connecting an existing Airtable base","sidebarTitle":"Connecting","href":"/connecting/airtable_connecting"},{"title":"Airtable primary keys","sidebarTitle":"Primary keys","href":"/connecting/airtable_pkey"}]},{"group":"Notion","pages":[{"title":"Connecting an existing Notion database","sidebarTitle":"Connecting","href":"/connecting/notion_connecting"},{"title":"Notion primary keys","sidebarTitle":"Primary keys","href":"/connecting/notion_pkey"}]},{"group":"DynamoDB","pages":[{"title":"DynamoDB","description":"Follow these steps to set up your initial DynamoDB connection with Bracket","href":"/connecting/dynamodb_connecting"}]},{"group":"Firestore","pages":[{"title":"Connecting Firestore","sidebarTitle":"Connecting","href":"/connecting/firebase_connecting"},{"title":"Firestore primary keys","sidebarTitle":"Primary keys","description":"How Bracket treats Firestore primary keys","href":"/connecting/firebase_pkey"}]},{"group":"Google Sheets","pages":[{"title":"Connecting an existing Google Sheet","sidebarTitle":"Connecting","href":"/connecting/gsheets_connecting"},{"title":"Configuring your Google Sheet primary key","sidebarTitle":"Primary keys","href":"/connecting/gsheets_pkey"}]},{"group":"Hubspot","pages":[{"title":"Connecting Hubspot","sidebarTitle":"Connecting","href":"/connecting/hubspot_connecting"}]},{"group":"MongoDB","pages":[{"title":"Connecting MongoDB","sidebarTitle":"Connecting","href":"/connecting/mongodb_connecting"},{"title":"MongoDB primary keys","sidebarTitle":"Primary keys","href":"/connecting/mongodb_pkey"}]},{"group":"MySQL","pages":[{"title":"Connecting MySQL","sidebarTitle":"Connecting","href":"/connecting/mysql_connecting"}]},{"group":"Postgres","pages":[{"title":"Connecting Postgres","sidebarTitle":"Connecting","href":"/connecting/postgres_connecting"},{"title":"Configuring your Postgres primary key","sidebarTitle":"Primary keys","href":"/connecting/postgres_pkey"},{"title":"Creating Postgres tables using Bracket","sidebarTitle":"Creating a table","href":"/connecting/postgres_creating_table"},{"title":"Using an existing table with Bracket","sidebarTitle":"Using an existing table","href":"/connecting/postgres_self_created_tables"}]},{"group":"Salesforce","pages":[{"title":"Connecting Salesforce","sidebarTitle":"Connecting","href":"/connecting/salesforce_connecting"},{"title":"Salesforce API Reference","sidebarTitle":"API Reference","href":"/connecting/salesforce_api"}]},{"group":"Snowflake","pages":[{"title":"Connecting Snowflake","sidebarTitle":"Connecting","href":"/connecting/snowflake_connecting"},{"title":"Configuring your Snowflake primary key","sidebarTitle":"Primary keys","href":"/connecting/snowflake_pkey"}]}]}]},{"anchor":"Demo","href":"https://www.loom.com/share/6b3b67a2b603454787aed7edad9c64d7?sid=8c111789-449d-425f-9ab1-d54638845d8a","icon":"circle-play","color":{"light":"#db4e5e","dark":"#db4e5e"}},{"anchor":"Contact Us","href":"mailto:founders@usebracket.com","icon":"envelope","color":{"light":"#ffcc4c","dark":"#ffcc4c"}}]},"basePath":"","title":"Connecting Firestore - Bracket","buildId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","deploymentId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-BdiBGm0H.js","DynamicMarkdown-CbqEDjbV.js","zoom-image-lightbox-CvtNkYOX.js","lightbox-handle-r17bVUz3.js"]}