How to Use Fuego: A Command-Line Firestore Client

Jul 2, 2024 | Programming

Welcome to this step-by-step guide on using Fuego, a powerful command-line tool for working with Firestore databases. In this blog, you’ll learn how to install Fuego, authenticate your Firestore project, use essential commands, and troubleshoot common issues.

Installation

To get started with Fuego, follow one of the installation methods below:

Precompiled Binaries

Download one of the precompiled binaries from the latest release. Builds are available for Windows, Linux, and macOS (Darwin).

Snap for Linux

If you’re on a Linux system, you can install Fuego via Snap. Use the following command, noting that you might need to add the --devmode flag to access your GOOGLE_APPLICATION_CREDENTIALS file:

sudo snap install fuego --devmode

Building it Locally

If you’re comfortable building applications, you can build Fuego yourself. First, make sure Go is installed by visiting the official Go website. Then run:

git clone https://github.com/sgarciacfuego.git
cd fuego
go build . # and go install . if you want
fuego --help

Usage

Let’s dive into how to use Fuego effectively:

Authentication

To access your Firestore database, you’ll need a Service Account key file:

  1. Go to your Firebase project console.
  2. Navigate to Project settings and then click on the Service accounts tab.
  3. Generate a new private key.

Once you have your Service Account key file, you have two options to use it:

  • Use the --credentials flag:
  • fuego --credentials=.my-account-service-private-key.json get mycollection mydocumentid
  • Set the GOOGLE_APPLICATION_CREDENTIALS environment variable:
  • export GOOGLE_APPLICATION_CREDENTIALS=.my-account-service-private-key.json
    fuego get mycollection mydocumentid

Interacting with Your Firestore Database

Once authenticated, you can use Fuego to interact with your Firestore database easily. Here’s how:

  • To list collections:
  • fuego collections
  • To add a new document:
  • fuego add people name: sergio, age: 41
  • To get a document by ID:
  • fuego get people Rv7ZfnLQWprdXuulqMdf
  • To delete a document:
  • fuego delete people Rv7ZfnLQWprdXuulqMdf

Understanding Fuego Commands with an Analogy

Think of using Fuego as if you’re a librarian managing a vast library (your Firestore database). Each book in the library is like a document, organized into different genres (collections). Just as a librarian can add, find, or delete books, you can replace “books” with Fuego commands:

  • **Adding a book**: When you add a new document with Fuego, you’re placing a new title on the shelf.
  • **Finding a book**: Fetching a document by its ID is like locating a specific title using the library’s catalog.
  • **Removing a book**: Deleting a document is akin to taking a title off the shelf forever.
  • **Editing a book**: Updating a document corresponds to replacing an outdated edition with a new one.

Troubleshooting

When working with Fuego, you may encounter a few issues. Here are some common troubleshooting tips:

  • If you receive errors regarding credentials, ensure that your GOOGLE_APPLICATION_CREDENTIALS is set correctly.
  • For issues related to Firestore Emulators, confirm that the FIRESTORE_EMULATOR_HOST is accurately configured.
  • If a command isn’t recognized, double-check the command syntax and options.
  • When a query requires an index, follow the link provided in the error message to create the necessary indexes in Firebase Console.
  • For more insights, updates, or to collaborate on AI development projects, stay connected with fxis.ai.

Advanced Features

Fuego also supports advanced features like:

  • Using filters and pagination in queries, making data retrieval more efficient.
  • Managing subcollections effortlessly by specifying paths.
  • Copying collections or documents across different Google projects.

At fxis.ai, we believe that such advancements are crucial for the future of AI, as they enable more comprehensive and effective solutions. Our team is continually exploring new methodologies to push the envelope in artificial intelligence, ensuring that our clients benefit from the latest technological innovations.

Stay Informed with the Newest F(x) Insights and Blogs

Tech News and Blog Highlights, Straight to Your Inbox