# Firebase Cloud Firestone

**Com o módulo Firebase Cloud Firestore é possível criar, atualizar, buscar e apagar documentos em um banco de dados do Firebase.**

<figure><img src="/files/eNRuwMO3mmi7RxfYgMXQ" alt=""><figcaption><p>Imagem 1 - Módulo Firebase Cloud Firestone aberto.</p></figcaption></figure>

#### Detalhes do módulo

Para usar o conector, você precisará informar os seguintes parâmetros:

* **database**: o nome do banco de dados do Firestore (geralmente `default`).
* **operation**: a operação que deseja executar:
  * `create` → cria ou sobrescreve um documento com o ID fornecido.
  * `push` → cria um documento com ID automático gerado pelo Firebase.
  * `get` → busca o conteúdo de um documento.
  * `update` → atualiza campos de um documento existente.
  * `delete` → apaga um documento.
* **path**: caminho da coleção/documento (ex.: `users/john.doe` ou apenas `users`).
* **body**: objeto JSON com os dados a serem gravados (obrigatório para `create`, `update` e `push`).

⚠️ **Atenção**: O Firestore **não cria documentos intermediários automaticamente**. Para inserir dados em uma subcoleção (`users/albert.einstein/posts`), o documento pai (`albert.einstein`) deve existir previamente.

***

#### Exemplos de uso

**CREATE (ID fixo)**

```json
{
  "operation": "create",
  "database": "default",
  "path": "staging-test/qa-001",
  "body": { "name": "Lucas QA", "status": "active" }
}
```

**PUSH (ID automático)**

```json
{
  "operation": "push",
  "database": "default",
  "path": "staging-test",
  "body": { "name": "Teste push", "status": "active" }
}
```

**GET (buscar documento)**

```json
{
  "operation": "get",
  "database": "default",
  "path": "staging-test/qa-001"
}
```

**UPDATE (editar campos)**

```json
{
  "operation": "update",
  "database": "default",
  "path": "staging-test/qa-001",
  "body": { "status": "inactive" }
}
```

**DELETE (apagar documento)**

```json
{
  "operation": "delete",
  "database": "default",
  "path": "staging-test/qa-001"
}
```

***

#### Caso de uso

Suponha que você precise registrar novos pedidos em um banco de dados.\
No fluxo, configure o módulo Firestore da seguinte forma:

1. Escolha a operação `push`.
2. Defina o caminho `orders`.
3. Insira no campo `body` os dados do pedido em JSON:

```json
{ "item": "notebook", "quantity": 1, "status": "pending" }
```

O Firestore criará automaticamente um documento com ID único dentro da coleção `orders`.

***

#### Dicas e boas práticas

* Use IDs simples (ex.: `qa-001`) para facilitar testes.
* Após usar `push`, confira na resposta qual ID foi criado.
* Se ocorrer erro em `collectionPath`, valide se o caminho está correto:
  * Para `push` → use só a **coleção** (ex.: `staging-test`).
  * Para `create`, `get`, `update` e `delete` → use **coleção/documento** (ex.: `staging-test/qa-001`).
* Erro **permission denied**: configure as regras de segurança do Firestore ou use uma conta com permissão.
* Certifique-se de que o **body** seja sempre um JSON válido


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.hyperflow.global/docs/builder-de-chatbots/integracao/firebase-cloud-firestone.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
