{"version":1,"pages":[{"id":"-Lu8kKYBiNcTWFWizccf","title":"Firebase React Notes","pathname":"/firebase-react-notes","siteSpaceId":"sitesp_Uf7Ro","description":"Some notes on using firebase with react"},{"id":"-Lu8xV-lb6lcaF6OA3mv","title":"Firebase - Create React app setup","pathname":"/firebase-react-notes/react-+-firebase/firebase-create-react-app-setup","siteSpaceId":"sitesp_Uf7Ro","description":"Local development","breadcrumbs":[{"label":"React + firebase"}]},{"id":"-Lu9dDjrGUrkuNOtO_2Z","title":"Node & nvm","pathname":"/firebase-react-notes/react-+-firebase/firebase-create-react-app-setup/node-and-nvm","siteSpaceId":"sitesp_Uf7Ro","description":"One time dev setup","breadcrumbs":[{"label":"React + firebase"},{"label":"Firebase - Create React app setup"}]},{"id":"-Lu9f01WQCqu7CBbGNuq","title":"Create React App + Firebase","pathname":"/firebase-react-notes/react-+-firebase/firebase-create-react-app-setup/create-react-app-+-firebase","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"React + firebase"},{"label":"Firebase - Create React app setup"}]},{"id":"-Lu9dOU5H3cJ007vmQWc","title":"Create firebase app","pathname":"/firebase-react-notes/react-+-firebase/firebase-create-react-app-setup/create-firebase-app","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"React + firebase"},{"label":"Firebase - Create React app setup"}]},{"id":"-Lu9daOxYOV6k_retbQR","title":"Deploying To Firebase Hosting","pathname":"/firebase-react-notes/react-+-firebase/firebase-create-react-app-setup/deploying-to-firebase-hosting","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"React + firebase"},{"label":"Firebase - Create React app setup"}]},{"id":"-Lu9dfrlPq7fk27LOQ7T","title":"Switching Environments","pathname":"/firebase-react-notes/react-+-firebase/firebase-create-react-app-setup/switching-environments","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"React + firebase"},{"label":"Firebase - Create React app setup"}]},{"id":"-Lu9dm4PVjnnCsQDwUlV","title":"Typescript typings","pathname":"/firebase-react-notes/react-+-firebase/firebase-create-react-app-setup/typescript-typings","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"React + firebase"},{"label":"Firebase - Create React app setup"}]},{"id":"-Lu9dwR3D4VV_2d8Lo8z","title":"Firebase cloud function local development","pathname":"/firebase-react-notes/react-+-firebase/firebase-create-react-app-setup/firebase-cloud-function-local-development","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"React + firebase"},{"label":"Firebase - Create React app setup"}]},{"id":"-Lu9-Np7RkBgVMJ-H7XG","title":"Resources","pathname":"/firebase-react-notes/react-+-firebase/firebase-create-react-app-setup/untitled","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"React + firebase"},{"label":"Firebase - Create React app setup"}]},{"id":"-Lu8ygr7MpAYjBoKf2-C","title":"Firebase React context","pathname":"/firebase-react-notes/react-+-firebase/firebase-react-context","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"React + firebase"}]},{"id":"-Lu9iGliqo8G1a7-06na","title":"Motivation","pathname":"/firebase-react-notes/react-+-firebase/firebase-react-context/motivation","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"React + firebase"},{"label":"Firebase React context"}]},{"id":"-Lu9iOoeFnJr-Y3OP5TT","title":"Firebase React Context setup","pathname":"/firebase-react-notes/react-+-firebase/firebase-react-context/firebase-react-context-setup","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"React + firebase"},{"label":"Firebase React context"}]},{"id":"-Lu8ythqssueKQPnAd8z","title":"Firebase function local dev react","pathname":"/firebase-react-notes/react-+-firebase/firebase-function-local-dev-react","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"React + firebase"}]},{"id":"-Lu91o4KAxEU98PD-kUm","title":"React firebase hooks","pathname":"/firebase-react-notes/react-+-firebase/react-firebase-hooks","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"React + firebase"}]},{"id":"-MTvzeFtN5VfpWLY_0NL","title":"Multiple ENVs","pathname":"/firebase-react-notes/multiple-envs/multiple-envs","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"Multiple ENVs"}]},{"id":"-MU-GllYFfxNhqCqjbls","title":"Manual setup","pathname":"/firebase-react-notes/multiple-envs/manual-setup","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"Multiple ENVs"}]},{"id":"-MU-GrwHAoQca5WrJpnZ","title":"Terraform","pathname":"/firebase-react-notes/multiple-envs/terraform","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"Multiple ENVs"}]},{"id":"-Lu91bb4WBEI7hHxe4VF","title":"Firestore","pathname":"/firebase-react-notes/firestore/firestore","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"Firestore"}]},{"id":"-LyB1z917xXM5IU0dTUG","title":"Using a function to check email domain","pathname":"/firebase-react-notes/firestore/firestore/using-a-function-to-check-email-domain","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"Firestore"},{"label":"Firestore"}]},{"id":"-Lu91Ga1o3616N6hnEIf","title":"Firestore data model","pathname":"/firebase-react-notes/firestore/firestore-data-model","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"Firestore"}]},{"id":"-Lu8x4VPQsb9ETw43Mto","title":"associated Firebase data with Users","pathname":"/firebase-react-notes/firestore/associated-firebase-data-with-users","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"Firestore"}]},{"id":"-Lu91RTDsKtUusA7YIfr","title":"Firestore write","pathname":"/firebase-react-notes/firestore/firestore-write","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"Firestore"}]},{"id":"-Lu9oxWm_sArh2wBi-AZ","title":"Firestore - read","pathname":"/firebase-react-notes/firestore/firestore-read","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"Firestore"}]},{"id":"-LuCcCCdIuRrPEQQ1WI1","title":"Removing a listener from firestorm","pathname":"/firebase-react-notes/firestore/firestore-read/removing-a-listener-from-firestorm","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"Firestore"},{"label":"Firestore - read"}]},{"id":"-Lu91JwH4OD0s_kM_Zv_","title":"Firestore update","pathname":"/firebase-react-notes/firestore/firestore-update","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"Firestore"}]},{"id":"-Lu955geFRSTwq0Jxj30","title":"Persisting data offline","pathname":"/firebase-react-notes/firestore/persisting-data-offline","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"Firestore"}]},{"id":"-Lucdsps2BL_kGk1Q376","title":"Importing json","pathname":"/firebase-react-notes/firestore/importing-json","siteSpaceId":"sitesp_Uf7Ro","description":"Firebase: Import JSON To Cloud Firestore","breadcrumbs":[{"label":"Firestore"}]},{"id":"-Lu915c4Qw13tmOF3SmY","title":"Auth","pathname":"/firebase-react-notes/auth/auth","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"Auth"}]},{"id":"-Lu90YOuwSEWGgc4ZVvi","title":"Firebase UI","pathname":"/firebase-react-notes/auth/firebase-ui","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"Auth"}]},{"id":"-Lu8xAbz_hfHbd4eF9th","title":"Firebase Auth with React","pathname":"/firebase-react-notes/auth/firebase-auth-with-react","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"Auth"}]},{"id":"-Lu90jA6aJoGIH_7b6_k","title":"Linking auth accounts","pathname":"/firebase-react-notes/auth/linking-auth-accounts","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"Auth"}]},{"id":"-Lu90lp1SoUaYBNd3jE8","title":"Twitter sign in","pathname":"/firebase-react-notes/auth/twitter-sign-in","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"Auth"}]},{"id":"-Lu90sU7PIQkg3GGEH5S","title":"Google sign in","pathname":"/firebase-react-notes/auth/google-sign-in","siteSpaceId":"sitesp_Uf7Ro","description":"Firebase Gmail Auth","breadcrumbs":[{"label":"Auth"}]},{"id":"-LuErYxTO-gUgYnVLnd2","title":"Google sign in custom domain","pathname":"/firebase-react-notes/auth/google-sign-in/google-sign-in-custom-domain","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"Auth"},{"label":"Google sign in"}]},{"id":"-LuEuS9J4mkDarL_1w1z","title":"Database Auth","pathname":"/firebase-react-notes/auth/database-auth","siteSpaceId":"sitesp_Uf7Ro","description":"Auth with security rules at backend / database level eg Firestore","breadcrumbs":[{"label":"Auth"}]},{"id":"-Lu90vF7Dh-P36YuY6RR","title":"Custom claims","pathname":"/firebase-react-notes/auth/database-auth/whitelisting","siteSpaceId":"sitesp_Uf7Ro","description":"On the backend you can use custom claims to group user's permissions","breadcrumbs":[{"label":"Auth"},{"label":"Database Auth"}]},{"id":"-Lu90zH9kicaBnZuKdiX","title":"Limit auth to certain domain only","pathname":"/firebase-react-notes/auth/database-auth/limit-auth-to-certain-domain-only","siteSpaceId":"sitesp_Uf7Ro","description":"On the backend you can add security rules to the database","breadcrumbs":[{"label":"Auth"},{"label":"Database Auth"}]},{"id":"-Lu9131SBRsNfDG6_uYA","title":"Custom tokens","pathname":"/firebase-react-notes/auth/custom-tokens","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"Auth"}]},{"id":"-Lu8xOs4jZ0ZMt0p3JBz","title":"Cloud Functions","pathname":"/firebase-react-notes/cloud-functions/cloud-functions","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"Cloud Functions"}]},{"id":"-MUH6UqrAmxRtO7skLeM","title":"Set node version","pathname":"/firebase-react-notes/cloud-functions/set-node-version","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"Cloud Functions"}]},{"id":"-LuJColRwaXLINFsiY_h","title":"Set timeout and memory allocation","pathname":"/firebase-react-notes/cloud-functions/set-timeout","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"Cloud Functions"}]},{"id":"-Lu9rsIl_ga7MMtuIvfN","title":"Call functions via HTTP requests","pathname":"/firebase-react-notes/cloud-functions/call-functions-via-http-requests","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"Cloud Functions"}]},{"id":"-Lu9-TKz-DWipYMuRTB_","title":"HTTPS Callable","pathname":"/firebase-react-notes/cloud-functions/https-callable","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"Cloud Functions"}]},{"id":"-LumRRfCyo3Mm_RHlnpK","title":"HTTPS Callable cloud function auth check email address domain","pathname":"/firebase-react-notes/cloud-functions/https-callable/auth-check-email-address-domain","siteSpaceId":"sitesp_Uf7Ro","description":"cloud function auth email domain check","breadcrumbs":[{"label":"Cloud Functions"},{"label":"HTTPS Callable"}]},{"id":"-Lu9-xxcuuLC_9eRTOWU","title":"Separate Cloud Function in multiple files","pathname":"/firebase-react-notes/cloud-functions/cloud-function-separate-in-multiple-files","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"Cloud Functions"}]},{"id":"-Lu9pJni8GZyLud1eOSh","title":"Slack integration","pathname":"/firebase-react-notes/cloud-functions/slack-integration","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"Cloud Functions"}]},{"id":"-Lu901UcJHQt4qF2Ggxd","title":"Twilio firebase functions","pathname":"/firebase-react-notes/cloud-functions/twilio-firebase-functions","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"Cloud Functions"}]},{"id":"-Lu9t5W2H_cADtHJt_Y0","title":"ffmpeg convert audio","pathname":"/firebase-react-notes/cloud-functions/ffmpeg-convert-audio","siteSpaceId":"sitesp_Uf7Ro","description":"ffmpeg convert audio in cloud function","breadcrumbs":[{"label":"Cloud Functions"}]},{"id":"-LucPZhSHEWujRQNeJ2Z","title":"ffmpeg transcoding video","pathname":"/firebase-react-notes/cloud-functions/ffmpeg-transcoding-video","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"Cloud Functions"}]},{"id":"-LurVJqhQn6zyS2y8XIb","title":"Security","pathname":"/firebase-react-notes/storage/security","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"Storage"}]},{"id":"-Lu90HdZvOvsG-6QHPpu","title":"Create","pathname":"/firebase-react-notes/storage/storage","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"Storage"}]},{"id":"-Lu9mNUVFB-H6BhNYlJk","title":"Delete","pathname":"/firebase-react-notes/storage/delete","siteSpaceId":"sitesp_Uf7Ro","description":"Firestore trigger to delete file cloud storage","breadcrumbs":[{"label":"Storage"}]},{"id":"-LveIK9ZA9wBjmZ3QtNP","title":"Uploading with React to Firebase Storage","pathname":"/firebase-react-notes/storage/uploading-with-react-to-firebase-storage","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"Storage"}]},{"id":"-LurYk6Rzb3Ws-vzjUj1","title":"Getting full path","pathname":"/firebase-react-notes/storage/getting-full-path","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"Storage"}]},{"id":"-MKbTPiOUu3IoBvEEPqH","title":"Firebase `getDownloadURL`","pathname":"/firebase-react-notes/storage/firebase-getdownloadurl","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"Storage"}]},{"id":"-MWSEDE1b5aFd4LEas9d","title":"Saving files to cloud storage from memory","pathname":"/firebase-react-notes/storage/saving-files-to-cloud-storage-from-memory","siteSpaceId":"sitesp_Uf7Ro","description":"Eg saving a json","breadcrumbs":[{"label":"Storage"}]},{"id":"-Lu8xQIqwZrpkg0IJVF-","title":"Hosting","pathname":"/firebase-react-notes/hosting/hosting","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"Hosting"}]},{"id":"-Me09Md05hX7yNMYO_Tz","title":"Hosting + cloud functions","pathname":"/firebase-react-notes/hosting/hosting-+-cloud-functions","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"Hosting"}]},{"id":"-Lu8xRtHXh88117YKV_a","title":"Firebase admin","pathname":"/firebase-react-notes/firebase-admin/firebase-admin","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"Firebase Admin"}]},{"id":"-Lu8xWuL5gLJYrC5FBrL","title":"Firebase analytics","pathname":"/firebase-react-notes/firebase-analytics/firebase-analytics","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"Firebase analytics"}]},{"id":"-Lu8xZTemtF0pkU1daig","title":"Google App Engine","pathname":"/firebase-react-notes/google-app-engine/google-app-engine","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"Google App Engine"}]},{"id":"-MKNYk4DNvU8BHuKtSrT","title":"GCP App Engine + video transcoding","pathname":"/firebase-react-notes/google-app-engine/gcp-app-engine-+-video-transcoding","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"Google App Engine"}]},{"id":"-MK61MtLJsnWNZgV7mKZ","title":"STT + Cloud Function + Cloud Task","pathname":"/firebase-react-notes/stt/stt-+-cloud-function-+-cloud-task","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"STT"}]},{"id":"-MKN8pZK0hs-6wtq-qGj","title":"Example implementation","pathname":"/firebase-react-notes/stt/stt-+-cloud-function-+-cloud-task/example-implementation","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"STT"},{"label":"STT + Cloud Function + Cloud Task"}]},{"id":"-MKNMmQW3Z5bPcaBs3he","title":"`createTranscript`","pathname":"/firebase-react-notes/stt/stt-+-cloud-function-+-cloud-task/createtranscript","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"STT"},{"label":"STT + Cloud Function + Cloud Task"}]},{"id":"-MKNMsi0NkpUqJ4NixMJ","title":"`createHandler`","pathname":"/firebase-react-notes/stt/stt-+-cloud-function-+-cloud-task/untitled","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"STT"},{"label":"STT + Cloud Function + Cloud Task"}]},{"id":"-MKNRKYGcFOwMstkSML_","title":"Firebase ENV","pathname":"/firebase-react-notes/stt/stt-+-cloud-function-+-cloud-task/untitled/firebase-env","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"STT"},{"label":"STT + Cloud Function + Cloud Task"},{"label":"`createHandler`"}]},{"id":"-MKNVVktdU_tW2K_WEOJ","title":"Other","pathname":"/firebase-react-notes/stt/other","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"STT"}]},{"id":"-LuJ4cnoh9vd8B0E_FQ2","title":"enableWordTimeOffsets","pathname":"/firebase-react-notes/stt/other/enablewordtimeoffsets","siteSpaceId":"sitesp_Uf7Ro","description":"How to get word level timings","breadcrumbs":[{"label":"STT"},{"label":"Other"}]},{"id":"-LuF4xTzv6i4Lgj3PyT5","title":"STT longRunningRecognize in Cloud function","pathname":"/firebase-react-notes/stt/other/cloud-function-+-stt-long-running-audio-files","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"STT"},{"label":"Other"}]},{"id":"-Lu8zu_oRKt4y0b73EtV","title":"STT + Cloud Function","pathname":"/firebase-react-notes/stt/other/stt","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"STT"},{"label":"Other"}]},{"id":"-Lu9kyDEncLM-ez85S_z","title":"STT + Google App Engine","pathname":"/firebase-react-notes/stt/other/stt-+-google-app-engine","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"STT"},{"label":"Other"}]},{"id":"-Lu8xaaVG4vUjGirZ7WS","title":"STT via Google Cloud Video intelligence API","pathname":"/firebase-react-notes/stt/other/stt-via-google-cloud-video-intelligence-api","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"STT"},{"label":"Other"}]},{"id":"-Lu8xfqBi1kaYwKl72cS","title":"Travis CI integration","pathname":"/firebase-react-notes/ci-integration/travis-ci-integration","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"CI Integration"}]},{"id":"-Lu9q4V0UU_jqCGIVzTf","title":"Github actions integration","pathname":"/firebase-react-notes/ci-integration/github-actions-integration","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"CI Integration"}]},{"id":"-Lu8xphgAhrEnTekENVU","title":"Visual code extension","pathname":"/firebase-react-notes/visual-code/untitled","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"Visual code"}]},{"id":"-Lu8xrsNnO3L6xriHH2K","title":"Firebase with electron","pathname":"/firebase-react-notes/electron/untitled","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"Electron"}]},{"id":"-Lu8xwokI3LhT5LXZylg","title":"Pricing","pathname":"/firebase-react-notes/pricing/untitled","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"Pricing"}]},{"id":"-Lu8xycYg0ZUn6jVXUIt","title":"Unit testing","pathname":"/firebase-react-notes/testing/unit-testing","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"Testing"}]},{"id":"-Lu8y1ZbPh-BXQPQM5pg","title":"Privacy and security","pathname":"/firebase-react-notes/privacy-and-security/untitled","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"Privacy and Security"}]},{"id":"-Lu8xjZi-ntLApnRXSfn","title":"links","pathname":"/firebase-react-notes/useful-resources/untitled","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"Useful resources"}]},{"id":"-LuIB52uTGV2S_s2IWQs","title":"Firebase extension","pathname":"/firebase-react-notes/firebase-extensions/firebase-extension","siteSpaceId":"sitesp_Uf7Ro","description":"Adding some new functionality? check if there's already an extension first","breadcrumbs":[{"label":"Firebase Extensions"}]},{"id":"-LvG7VPRYV5fBHzNBTSN","title":"Firebase in a chrome extension","pathname":"/firebase-react-notes/chrome-extension/firebase-in-a-chrome-extension","siteSpaceId":"sitesp_Uf7Ro","description":"Adding firebase/firestore to chrome extension","breadcrumbs":[{"label":"Chrome Extension"}]},{"id":"-MTw-h2PMeCUpQjcRGNZ","title":"Cloud Run","pathname":"/firebase-react-notes/cloud-run/cloud-run","siteSpaceId":"sitesp_Uf7Ro","description":"","breadcrumbs":[{"label":"Cloud Run"}]}]}