> For the complete documentation index, see [llms.txt](https://help.hyperflow.global/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.hyperflow.global/docs/builder-de-chatbots/integracao/firebase-cloud-storage.md).

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