> 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-hyperflow/gerenciamento-de-aplicativos/integracoes/firebase.md).

# Firebase

<figure><img src="https://3829578295-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRWteFkm020DS5IbXoSgj%2Fuploads%2FNw8jHnvqFXkvhEn7KU2D%2Fimage.png?alt=media&amp;token=f65ec688-d5d3-4180-b4c9-7dd7c3689fab" alt=""><figcaption><p>Imagem 1 - Integração com o Firebase.</p></figcaption></figure>

### 🔑 1. Pré-requisitos – Obtendo Credenciais

Para utilizar os conectores, é necessário configurar uma **Conta de Serviço (Service Account)** do Firebase, que fornece credenciais administrativas.

⚠️ **Atenção**: Essas credenciais são sensíveis e **nunca devem ser expostas no lado do cliente** (navegador ou apps públicos).

#### Como gerar as credenciais (arquivo JSON):

1. Acesse o [**Console do Firebase**](https://console.firebase.google.com/) e selecione seu projeto.
2. Clique no ícone de **engrenagem** → **Configurações do projeto**.&#x20;

   <figure><img src="https://3829578295-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRWteFkm020DS5IbXoSgj%2Fuploads%2FPS3Bs8bA1rolc61Xenra%2Fimage.png?alt=media&amp;token=764b2e60-2c87-4d89-8fef-d16a5a1d4a28" alt=""><figcaption><p>Imagem 2 - Clicar em engrenagem -> Configurações do projeto.</p></figcaption></figure>
3. Vá até a aba **Contas de serviço**.&#x20;

   <figure><img src="https://3829578295-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRWteFkm020DS5IbXoSgj%2Fuploads%2F8F4N5qWlhz9TGgFSZHB7%2Fimage.png?alt=media&amp;token=70d90c73-7518-4576-a9e1-6b62dd469e52" alt=""><figcaption><p>Imagem 3 - Aba 'Contas de serviço'.</p></figcaption></figure>
4. Clique em **Gerenciar permissões da conta de serviço** (redireciona ao Console do Google Cloud).&#x20;

   <figure><img src="https://3829578295-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRWteFkm020DS5IbXoSgj%2Fuploads%2FKErEG1llwyEX7YLHxqQq%2Fimage.png?alt=media&amp;token=bace5f2c-a101-477c-8e73-75fff96ef500" alt=""><figcaption><p>Imagem 4 - Clicar em 'Gerenciar permissões da conta de serviço'.</p></figcaption></figure>
5. Localize a conta de serviço padrão do **Firebase Admin SDK**.
6. Clique nos **três pontos verticais** → **Gerenciar chaves**.&#x20;

   <figure><img src="https://3829578295-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRWteFkm020DS5IbXoSgj%2Fuploads%2Fo3uqdXtai1AVzU4maI3S%2Fimage.png?alt=media&amp;token=3f902c3e-2eba-46de-ac74-4432b130ae5e" alt=""><figcaption><p>Imagem 5 - Clicar em 'Gerenciar chaves'.</p></figcaption></figure>
7. Selecione **Adicionar chave** → **Criar nova chave**.&#x20;

   <figure><img src="https://3829578295-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRWteFkm020DS5IbXoSgj%2Fuploads%2FNNzneJhHF4zzaPrljOns%2Fimage.png?alt=media&amp;token=01266e81-b625-4f06-ac6f-442469996d38" alt=""><figcaption><p>Imagem 6 - Criar nova chave.</p></figcaption></figure>
8. Escolha o formato **JSON** e clique em **Criar**.&#x20;

   <figure><img src="https://3829578295-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRWteFkm020DS5IbXoSgj%2Fuploads%2F1wGnrDtPNbhi8t7I5ajf%2Fimage.png?alt=media&amp;token=d67d45da-714a-4fc5-836d-57f9a441ad5b" alt=""><figcaption><p>Imagem 7 - Selecionar JSON e criar.</p></figcaption></figure>

➡️ Um arquivo `.json` será baixado. Ele contém todas as credenciais necessárias.

<figure><img src="https://3829578295-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRWteFkm020DS5IbXoSgj%2Fuploads%2F4yhpwZWznqXVVOqUoIo2%2Fimage.png?alt=media&amp;token=419233e3-4d74-483e-8577-8c6ad0d2fc22" alt=""><figcaption><p>Imagem 8 - Após a geração da chave, é feito o download automaticamente do JSON.</p></figcaption></figure>

<figure><img src="https://3829578295-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRWteFkm020DS5IbXoSgj%2Fuploads%2FQtnKia8VIxPEsmTneOkc%2Fimage.png?alt=media&amp;token=ce60781d-ced2-43f7-8746-d2d086f112cf" alt=""><figcaption><p>Imagem 9 - Caso o download não seja iniciado, deve-se clicar em 'Gerar nova chave privada'.</p></figcaption></figure>

***

### 📂 2. Estrutura das Credenciais

O arquivo JSON terá uma estrutura semelhante a:

```json
{
  "type": "service_account",
  "project_id": "seu-id-do-projeto",
  "private_key_id": "uma-longa-string-de-id",
  "private_key": "-----BEGIN PRIVATE KEY-----\n...",
  "client_email": "firebase-adminsdk@seu-projeto.iam.gserviceaccount.com",
  "client_id": "12345678901234567890",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://oauth2.googleapis.com/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk..."
}
```

***

### ⚙️ 3. Parâmetros de Conexão

O conector utiliza os seguintes campos do arquivo para autenticação:

| **Parâmetro**  | **Descrição**                               | **Exemplo**                                               |
| -------------- | ------------------------------------------- | --------------------------------------------------------- |
| `project_id`   | Identificador único do projeto Firebase.    | `"seu-id-do-projeto"`                                     |
| `private_key`  | Chave privada completa (com *BEGIN*/*END*). | `"-----BEGIN PRIVATE KEY-----\n..."`                      |
| `client_email` | E-mail associado à Conta de Serviço.        | `"firebase-adminsdk@seu-projeto.iam.gserviceaccount.com"` |

### 💡 4. Boas Práticas e Dicas

* **Organização**: use nomes de pastas bem estruturados (ex.: `uploads/ano/mes/arquivo.pdf`).
* **Segurança**: nunca exponha a `private_key` em front-end.
* **Logs**: evite registrar arquivos ou credenciais em logs.
* **Permissões**: revise as regras de segurança no Firebase para evitar erros de `permission denied`.
* **Teste gradual**: crie documento → busque → atualize → delete, para validar a configuração passo a passo.
* **IDs**: para testes, use IDs simples (`qa-001`) em Firestore. Após `push`, consulte o retorno para capturar o ID gerado.

{% hint style="danger" %}
**Após concluir a configuração da integração com o Firebase, você poderá utilizar os módulos Firestore e Storage, criados para oferecer controle completo sobre dados ou arquivos, conforme o conector escolhido.**
{% endhint %}
