[{"data":1,"prerenderedAt":572},["ShallowReactive",2],{"blog-firestore-desktop-client-mac":3},{"id":4,"title":5,"body":6,"date":556,"description":557,"extension":558,"image":559,"keywords":560,"meta":566,"navigation":567,"path":568,"seo":569,"stem":570,"__hash__":571},"blog/blog/firestore-desktop-client-mac.md","Firestore Desktop Client for Mac: Browse Collections Like a Spreadsheet",{"type":7,"value":8,"toc":535},"minimark",[9,13,16,19,24,27,71,74,78,88,91,96,99,125,128,132,135,150,153,157,160,186,190,193,207,210,214,217,220,231,235,238,242,249,256,270,274,280,287,298,302,433,436,442,446,468,471,475,480,497,502,513,517,520,523,526,529],[10,11,12],"p",{},"Last week I spent 45 minutes clicking through the Firebase Console trying to find why a user's subscription wasn't syncing. The document was nested three subcollections deep. Every click was a page load. I couldn't filter by timestamp. I couldn't export the data to compare it with our Stripe records.",[10,14,15],{},"The Firebase Console is fine for quick lookups. It's terrible for actual debugging.",[10,17,18],{},"If you've worked with PostgreSQL or MySQL, you know what a proper database GUI looks like: a grid of rows, click-to-sort columns, filters that don't require writing code. Firestore deserves the same.",[20,21,23],"h2",{"id":22},"the-problem-with-firebase-console","The Problem with Firebase Console",[10,25,26],{},"The Firebase Console was designed for configuration, not data exploration. Here's what makes it frustrating for daily use:",[28,29,30,38,53,59,65],"ul",{},[31,32,33,37],"li",{},[34,35,36],"strong",{},"Click, wait, click, wait",": Every subcollection navigation triggers a full page load. Debugging a deeply nested document path means minutes of clicking.",[31,39,40,43,44,48,49,52],{},[34,41,42],{},"One filter at a time",": Want documents where ",[45,46,47],"code",{},"status == \"pending\""," AND ",[45,50,51],{},"createdAt > yesterday","? You can't. The console only supports single where clauses.",[31,54,55,58],{},[34,56,57],{},"No export button",": Need to send data to your team? Copy-paste individual documents or write a script. There's no CSV or JSON export.",[31,60,61,64],{},[34,62,63],{},"Documents, not rows",": You see one document at a time. No way to scan 50 records at once to spot the anomaly.",[31,66,67,70],{},[34,68,69],{},"Tab chaos",": Three Firebase projects means three browser tabs, each with its own auth session.",[10,72,73],{},"For changing a config value, the console works. For understanding your data, you need a real database client.",[20,75,77],{"id":76},"queryline-a-native-firestore-client","Queryline: A Native Firestore Client",[10,79,80,87],{},[81,82,86],"a",{"href":83,"rel":84},"https://queryline.dev",[85],"nofollow","Queryline"," is a free, native database client for macOS. It supports PostgreSQL, MySQL, SQLite — and Firestore.",[10,89,90],{},"That last one is unusual. Most database tools ignore Firestore because it's not SQL. Queryline treats it as a first-class database with a dedicated interface built around collections and documents.",[92,93,95],"h3",{"id":94},"browse-collections-in-a-grid","Browse Collections in a Grid",[10,97,98],{},"Instead of clicking through documents one by one, Queryline displays your collection in a data grid. Each row is a document, each column is a field. You can:",[28,100,101,107,113,119],{},[31,102,103,106],{},[34,104,105],{},"Sort by any field"," with a click",[31,108,109,112],{},[34,110,111],{},"Resize columns"," to see long values",[31,114,115,118],{},[34,116,117],{},"Select multiple documents"," for bulk operations",[31,120,121,124],{},[34,122,123],{},"Scroll through thousands of documents"," without lag",[10,126,127],{},"The grid uses virtual scrolling — it only renders what's visible, so performance stays consistent whether you have 50 documents or 50,000.",[92,129,131],{"id":130},"visual-query-builder","Visual Query Builder",[10,133,134],{},"Firestore doesn't use SQL, so Queryline provides a visual query interface:",[136,137,138,141,144,147],"ol",{},[31,139,140],{},"Select a collection from the dropdown",[31,142,143],{},"Add filter conditions (field, operator, value)",[31,145,146],{},"Set ordering and limits",[31,148,149],{},"Execute and view results",[10,151,152],{},"You can combine multiple filters and see the results update immediately. No need to remember Firestore's query syntax or write code.",[92,154,156],{"id":155},"document-detail-panel","Document Detail Panel",[10,158,159],{},"Select any document to see its full contents in a side panel. This is especially useful for:",[28,161,162,168,174,180],{},[31,163,164,167],{},[34,165,166],{},"Nested objects",": Expand and collapse nested data",[31,169,170,173],{},[34,171,172],{},"Arrays",": See all array elements in a readable format",[31,175,176,179],{},[34,177,178],{},"Long strings",": View full text without truncation",[31,181,182,185],{},[34,183,184],{},"Timestamps",": Displayed in a human-readable format",[92,187,189],{"id":188},"export-to-csv-or-json","Export to CSV or JSON",[10,191,192],{},"Need to share data with your team or analyze it in a spreadsheet? Export any query result to:",[28,194,195,201],{},[31,196,197,200],{},[34,198,199],{},"CSV",": Open directly in Excel, Numbers, or Google Sheets",[31,202,203,206],{},[34,204,205],{},"JSON",": Ready for scripts or other applications",[10,208,209],{},"No more copying and pasting from the console.",[92,211,213],{"id":212},"service-account-authentication","Service Account Authentication",[10,215,216],{},"Connect to Firestore using a service account JSON file. Your credentials are stored securely in the macOS Keychain — not in a config file on disk.",[10,218,219],{},"This means:",[28,221,222,225,228],{},[31,223,224],{},"Production credentials stay protected",[31,226,227],{},"You can connect to multiple projects safely",[31,229,230],{},"Switching between environments is fast",[20,232,234],{"id":233},"comparing-firestore-desktop-clients","Comparing Firestore Desktop Clients",[10,236,237],{},"There are a few other Firestore desktop clients available. Here's how they compare:",[92,239,241],{"id":240},"firefoo","Firefoo",[10,243,244],{},[245,246],"img",{"alt":247,"src":248},"Firefoo - GUI client for Firebase Firestore","/images/blog/firefoo.png",[10,250,251,255],{},[81,252,241],{"href":253,"rel":254},"https://www.firefoo.com",[85]," is the most established Firestore GUI. It's a capable tool with JavaScript query support, but it's paid:",[28,257,258,264],{},[31,259,260,263],{},[34,261,262],{},"Solo",": $9/month",[31,265,266,269],{},[34,267,268],{},"Team (8 seats)",": $55/month",[92,271,273],{"id":272},"fuego","Fuego",[10,275,276],{},[245,277],{"alt":278,"src":279},"Fuego - Firestore desktop client","/images/blog/fuego.png",[10,281,282,286],{},[81,283,273],{"href":284,"rel":285},"https://fuegoapp.dev",[85]," is a newer alternative with a modern interface:",[28,288,289,295],{},[31,290,291,294],{},[34,292,293],{},"Pro",": ~€10/month or €150 lifetime",[31,296,297],{},"Currently macOS only (Windows/Linux coming soon)",[92,299,301],{"id":300},"comparison","Comparison",[303,304,305,324],"table",{},[306,307,308],"thead",{},[309,310,311,315,318,320,322],"tr",{},[312,313,314],"th",{},"Feature",[312,316,317],{},"Firebase Console",[312,319,241],{},[312,321,273],{},[312,323,86],{},[325,326,327,346,361,374,388,403,420],"tbody",{},[309,328,329,333,336,339,342],{},[330,331,332],"td",{},"Price",[330,334,335],{},"Free",[330,337,338],{},"$9-55/mo",[330,340,341],{},"€10/mo or €150",[330,343,344],{},[34,345,335],{},[309,347,348,351,354,357,359],{},[330,349,350],{},"Data grid view",[330,352,353],{},"No",[330,355,356],{},"Yes",[330,358,356],{},[330,360,356],{},[309,362,363,366,368,370,372],{},[330,364,365],{},"JavaScript queries",[330,367,353],{},[330,369,356],{},[330,371,353],{},[330,373,353],{},[309,375,376,379,382,384,386],{},[330,377,378],{},"Visual query builder",[330,380,381],{},"Basic",[330,383,356],{},[330,385,356],{},[330,387,356],{},[309,389,390,393,395,397,399],{},[330,391,392],{},"Multi-database",[330,394,353],{},[330,396,353],{},[330,398,353],{},[330,400,401],{},[34,402,356],{},[309,404,405,408,411,414,417],{},[330,406,407],{},"Platforms",[330,409,410],{},"Browser",[330,412,413],{},"All",[330,415,416],{},"macOS*",[330,418,419],{},"macOS",[309,421,422,425,427,429,431],{},[330,423,424],{},"Export CSV/JSON",[330,426,353],{},[330,428,356],{},[330,430,356],{},[330,432,356],{},[10,434,435],{},"*Fuego has Windows/Linux coming soon.",[10,437,438,441],{},[34,439,440],{},"Bottom line",": If you need JavaScript queries and cross-platform support, Firefoo is worth the subscription. If you want a free tool that also handles PostgreSQL, MySQL, and SQLite, Queryline is the better choice.",[20,443,445],{"id":444},"getting-started","Getting Started",[136,447,448,456,459,462,465],{},[31,449,450,455],{},[81,451,454],{"href":452,"rel":453},"https://github.com/xar/queryline/releases",[85],"Download Queryline"," from GitHub",[31,457,458],{},"Open the app and click \"New Connection\"",[31,460,461],{},"Select \"Firestore\" as the database type",[31,463,464],{},"Upload your service account JSON file",[31,466,467],{},"Click \"Connect\"",[10,469,470],{},"You'll see your collections in the sidebar. Click any collection to view its documents in the grid.",[20,472,474],{"id":473},"when-to-use-queryline-for-firestore","When to Use Queryline for Firestore",[10,476,477],{},[34,478,479],{},"Good for:",[28,481,482,485,488,491,494],{},[31,483,484],{},"Debugging production data",[31,486,487],{},"Exploring collection structure",[31,489,490],{},"Exporting data for reports",[31,492,493],{},"Quick document lookups",[31,495,496],{},"Teams who also use PostgreSQL/MySQL/SQLite",[10,498,499],{},[34,500,501],{},"Not ideal for:",[28,503,504,507,510],{},[31,505,506],{},"Complex aggregations (Firestore limitation, not Queryline)",[31,508,509],{},"Realtime listeners (Queryline shows point-in-time snapshots)",[31,511,512],{},"Firebase Auth management (separate tool)",[20,514,516],{"id":515},"the-bottom-line","The Bottom Line",[10,518,519],{},"The Firebase Console is a configuration tool that happens to show data. Queryline is a database client that happens to support Firestore.",[10,521,522],{},"If you debug production data, export collections for analysis, or just want to browse your Firestore without the click-wait-click rhythm of the web console, Queryline is worth the 30-second install.",[10,524,525],{},"It's free. It's native. And it treats your Firestore data like the database it is.",[527,528],"hr",{},[10,530,531,534],{},[81,532,454],{"href":452,"rel":533},[85]," and try it with your own Firestore project.",{"title":536,"searchDepth":537,"depth":537,"links":538},"",2,[539,540,548,553,554,555],{"id":22,"depth":537,"text":23},{"id":76,"depth":537,"text":77,"children":541},[542,544,545,546,547],{"id":94,"depth":543,"text":95},3,{"id":130,"depth":543,"text":131},{"id":155,"depth":543,"text":156},{"id":188,"depth":543,"text":189},{"id":212,"depth":543,"text":213},{"id":233,"depth":537,"text":234,"children":549},[550,551,552],{"id":240,"depth":543,"text":241},{"id":272,"depth":543,"text":273},{"id":300,"depth":543,"text":301},{"id":444,"depth":537,"text":445},{"id":473,"depth":537,"text":474},{"id":515,"depth":537,"text":516},"2026-02-15","Tired of the Firebase Console? Queryline is a free, native desktop client for Firestore on macOS. Browse collections, filter documents, and export to CSV or JSON.","md",null,[561,562,563,564,565],"firestore desktop client","firestore gui","firestore console alternative","firestore mac app","browse firestore collections",{},true,"/blog/firestore-desktop-client-mac",{"title":5,"description":557},"blog/firestore-desktop-client-mac","hlahyZLZFsyW3y2EUfucerUlUjIfIfznBoy8d9QwjGQ",1772286667331]