<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/tags/firestore/best-of/2024" -->

---
title: Best Firestore posts of 2024 | daily.dev
description: The most upvoted Firestore posts of 2024, curated by the daily.dev community.
canonical: https://daily.dev/tags/firestore/best-of/2024
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:url: https://daily.dev/tags/firestore/best-of/2024
og:type: website
og:site_name: daily.dev
og:title: Best Firestore posts of 2024 | daily.dev
og:description: The most upvoted Firestore posts of 2024, curated by the daily.dev community.
og:image: https://media.daily.dev/image/upload/s--VAY5ToZt--/f_auto/v1724209435/public/daily.dev%20-%20open%20graph
---

# Best of Firestore — 2024

1. 1  
[](/posts/rookie-firebase-mistake-nearly-destroys-arc-browser-fr3cvnnmx "Rookie Firebase mistake nearly destroys Arc browser")  
Video  
![Avatar of fireship](https://media.daily.dev/image/upload/s--75ndqrkr--/f_auto,t_logo/v1702882094/logos/fireship.jpg)Fireship · 2y  
Rookie Firebase mistake nearly destroys Arc browser  
Arc browser recently faced a serious vulnerability due to misconfigured Firebase security rules. A hacker could have executed CSS and JavaScript on any website via the browser, potentially causing significant harm without the user visiting a malicious site. The issue has been patched swiftly after being reported by a security researcher. The problem was traced back to improperly managed Firestore rules which allowed user IDs to be changed, leading to potential security breaches.  
37  
4
2. 2  
[](/posts/persisting-llm-chat-history-to-firestore-ctqug0f6y "Persisting LLM chat history to Firestore")  
Article  
![Avatar of firebase-developers](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/e13782b61c20475895cc14c209cc0989)Firebase Developers · 2y  
Persisting LLM chat history to Firestore  
Learn how to persist chat history for LLM powered applications using Firestore. The post walks through maintaining in-memory chat history with LangChain's RunnableWithMessageHistory and transitioning to persistent storage using Firestore. Users will understand how to enhance their chat applications by saving session history, making conversations more context-aware and meaningful.  
25
3. 3  
[](/posts/building-pdf-open-source-services-with-angular-gcp-part-1-ulagbpqzn "Building PDF Open Source Services with Angular & GCP — Part 1")  
Article  
![Avatar of itnext](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/itnext2)ITNEXT · 2y  
Building PDF Open Source Services with Angular & GCP — Part 1  
This post discusses the building of an open source PDF service using Angular, Firestore, Cloud Storage, and CloudRun. It covers the first feature of uploading and resizing PDF files without heavy security.  
19
4. 4  
[](/posts/nuxt-pinia-with-firestore-9---adding-to-the-streak-3x12zvhq6 "Nuxt & Pinia with Firestore #9 - Adding to the Streak")  
Video  
![Avatar of netninja](https://media.daily.dev/image/upload/s--IXsAE5jo--/f_auto/v1718348103/logos/netninja)Net Ninja · 2y  
Nuxt & Pinia with Firestore #9 - Adding to the Streak  
This guide demonstrates adding a streak feature to a habit-tracking app built with Nuxt, Pinia, and Firestore. It involves incrementing the streak count when a habit is completed and decrementing or resetting it when a day is missed. The process includes sorting habit completion dates and calculating consecutive days using date-fns. The streak value is updated in real-time and stored in the Firestore database. The tutorial concludes with a walkthrough of implementing these updates and testing the functionality in a browser.  
10

[See all Firestore archives](/tags/firestore/best-of)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@graph":[{"@type":"CollectionPage","@id":"https://daily.dev/tags/firestore/best-of/2024#page","url":"https://daily.dev/tags/firestore/best-of/2024","name":"Best Firestore Posts of 2024","description":"The most upvoted Firestore posts of 2024, curated by the daily.dev community.","isPartOf":{"@type":"WebSite","url":"https://daily.dev"}},{"@type":"ItemList","@id":"https://daily.dev/tags/firestore/best-of/2024#items","numberOfItems":4,"itemListElement":[{"@type":"ListItem","position":1,"url":"https://daily.dev/posts/rookie-firebase-mistake-nearly-destroys-arc-browser-fr3cvnnmx","name":"Rookie Firebase mistake nearly destroys Arc browser"},{"@type":"ListItem","position":2,"url":"https://daily.dev/posts/persisting-llm-chat-history-to-firestore-ctqug0f6y","name":"Persisting LLM chat history to Firestore"},{"@type":"ListItem","position":3,"url":"https://daily.dev/posts/building-pdf-open-source-services-with-angular-gcp-part-1-ulagbpqzn","name":"Building PDF Open Source Services with Angular & GCP — Part 1"},{"@type":"ListItem","position":4,"url":"https://daily.dev/posts/nuxt-pinia-with-firestore-9---adding-to-the-streak-3x12zvhq6","name":"Nuxt & Pinia with Firestore #9 - Adding to the Streak"}]},{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Tags","item":"https://daily.dev/tags"},{"@type":"ListItem","position":3,"name":"Firestore","item":"https://daily.dev/tags/firestore"},{"@type":"ListItem","position":4,"name":"Best of","item":"https://daily.dev/tags/firestore/best-of"},{"@type":"ListItem","position":5,"name":"2024"}]}]}
```

