# Firebase

<figure><img src="/files/WfS8tqVgjbhT7nOeAL0E" 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="/files/pGhjlR11kGsKlhBA8ZBf" 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="/files/ahPUqgENW7vy3PVLHwGN" 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="/files/p8OPTEvJjueoP7S93fAh" 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="/files/JYoR1g9MYsZ9TvEHRGMR" alt=""><figcaption><p>Imagem 5 - Clicar em 'Gerenciar chaves'.</p></figcaption></figure>
7. Selecione **Adicionar chave** → **Criar nova chave**.&#x20;

   <figure><img src="/files/amignOiZj3LUjzKnU560" alt=""><figcaption><p>Imagem 6 - Criar nova chave.</p></figcaption></figure>
8. Escolha o formato **JSON** e clique em **Criar**.&#x20;

   <figure><img src="/files/BDRDCeITuY7ORoxrRNRd" 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="/files/OrkYfRPN0Vg9wbh6qWdX" alt=""><figcaption><p>Imagem 8 - Após a geração da chave, é feito o download automaticamente do JSON.</p></figcaption></figure>

<figure><img src="/files/Suu9nRAS91vMM2bbcC5g" 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 %}


---

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