# Firebase Cloud Storage

**Com o módulo Firebase Cloud Storage é possível enviar, buscar e excluir arquivos armazenados em Buckets do Firebase.**

<figure><img src="/files/6PEfkfsemzUtvct8uHmc" alt=""><figcaption><p>Imagem 1 - Exemplo do módulo Firebase Cloud Storage.</p></figcaption></figure>

#### Detalhes do módulo

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

* **bucket**: o nome do Bucket do Firebase onde os arquivos serão armazenados.
* **operation**: a operação que deseja executar:
  * `create` → faz upload de um arquivo.
  * `update` → substitui um arquivo existente.
  * `get` → gera uma **URL assinada** para download temporário do arquivo (expira em 1 hora).
  * `delete` → remove um arquivo do bucket.
* **path**: caminho do arquivo dentro do bucket (ex.: `uploads/documento.pdf`).
* **file**: conteúdo do arquivo em formato **Buffer**.
  * Se for fornecida apenas uma **URL**, é necessário implementar a lógica de download do arquivo no seu código antes de enviá-lo para o conector.

⚠️ **Atenção**:

* As credenciais utilizadas devem ser de uma **Service Account** do Firebase (não exponha no cliente).
* Antes de executar qualquer operação, o conector valida se o **bucket existe**.

***

#### Exemplos de uso

**CREATE (upload de arquivo)**

```json
{
  "operation": "create",
  "bucket": "meu-bucket",
  "path": "uploads/relatorio.pdf",
  "file": "<Buffer do arquivo>"
}
```

**GET (gerar URL temporária)**

```json
{
  "operation": "get",
  "bucket": "meu-bucket",
  "path": "uploads/relatorio.pdf"
}
```

➡️ Retorna uma URL assinada válida por **1 hora** para acessar o arquivo.

**UPDATE (substituir arquivo)**

```json
{
  "operation": "update",
  "bucket": "meu-bucket",
  "path": "uploads/relatorio.pdf",
  "file": "<Buffer do arquivo atualizado>"
}
```

**DELETE (apagar arquivo)**

```json
{
  "operation": "delete",
  "bucket": "meu-bucket",
  "path": "uploads/relatorio.pdf"
}
```

***

#### Caso de uso

Imagine que você precise salvar comprovantes enviados por clientes.\
No fluxo, configure o módulo Storage da seguinte forma:

1. Escolha a operação `create`.
2. Defina o bucket `meu-bucket`.
3. No campo `path`, informe `uploads/comprovante-123.pdf`.
4. No campo `file`, insira o Buffer do arquivo recebido.

O módulo fará o upload e, em seguida, você poderá usar a operação `get` para gerar uma URL temporária de acesso ao comprovante.

***

#### Dicas e boas práticas

* Prefira **nomes organizados de pastas** (ex.: `uploads/ano/mes/arquivo.pdf`) para manter o bucket estruturado.
* A **URL assinada** gerada no `get` deve ser usada apenas para acessos temporários. Se precisar de acesso contínuo, configure regras no Firebase.
* Sempre valide o retorno da operação: `Sucesso` ou `Erro`.
* Em caso de **permission denied**, revise as permissões da Service Account.
* Evite expor o conteúdo do arquivo em logs para não comprometer dados sensíveis.


---

# 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-storage.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.
