Welcome to Retool! We're a fast way to build custom internal software.

You'll find the 5 minute demo, quickstart guide, and documentation for each of our connectors and components here. If you've got any questions -- chat with us on the bottom right!

Get Started    Guides

Firebase / Firestore Integration

Retool supports Firebase's Admin API and allows you to create your custom admin interfaces to manage your Firebase application.

Retool supports managing users, querying and updating from Firebase Real-time Databases, and querying from Firestore.

Setting up Firebase

In the resources selector view - choose "Firebase." You will be prompted to provide a Service Account Key as well as a Database URL. The Service Account key is a JSON blob that you can create from your Firebase console, and the Database URL is how you can inform which database Retool should use. For more information on how you can obtain these fields see Firebase's documentation

Your configuration should resemble something like the screenshot below

After providing the Service Account Key and the Database URL, hit "Save." Retool will validate that it is able to connect to your Firebase database and then save. If instead you are looking to integrate Retool with Firestore, you need only fill in the Project Id section on this form.


You can now begin to use Firebase's API from within Retool.

User management

We support all the APIs documented here for managing users -


Retool currently only supports performing queries against the database using Firebase's ordering + range + limit query operations. Below is an example of such a query:

Firebase doesn't always return arrays of objects!

Retool doesn't do any transformations on the data that Firebase returns, and it won't always be an array of JSON.

To display the data in a Table, you'll probably want to use something like this:

{{ _.values( }}

Or in more advanced cases where you would also like to pull in the Firebase key:

_.zipWith(_.keys(, _.values(, (key, value) => Object.assign({}, { key: key}, value))


Querying Firestore

To begin querying data in Firestore you must first fill in the Project Id property on the Resource screen. Once that's been completed, you will be able to write simple queries on Firestore. Here is an example of such a query.

Snapshot metadata

Retool also automatically adds an _id field to the returned data which will be the record's id.

Inserting / Updating data in Firestore

Inserting and updating data in Firestore uses the same "Insert/Update" Firestore action.

In the above case, the Document ID is left blank, which turns this query into an "Insert" query. The object will be inserted at an auto-generated ID.

If instead you'd like to update an existing record in the collection, you can specify the id of the record you'd like to update in that same box.

Using Firestore References

Here's an example of how to specify that a string should be a "reference" type:

The syntax is inspired by the MongoDB Extended JSON syntax, you use $ref to specify that the string should be a ref. In any place where you might be a normal value you can now use the following to refer to a reference.

{ $ref: "collection/documentId" }

Updated 2 months ago

Firebase / Firestore Integration

Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.