firestore-ia

An n8n node to manage Google Cloud Firestore documents.

Package Information

Downloads: 46 weekly / 56 monthly
Latest Version: 1.1.1
Author: Saulo Eduardo

Documentation

🔥 Nó n8n para Firestore (IA-Friendly)

NPM Version
NPM Downloads
License: MIT

Node customizado para o n8n, projetado para manipular documentos no Google Cloud Firestore com suporte nativo a tipos complexos (Timestamp, GeoPoint, Reference).
Ideal para fluxos de automação com IAs, garantindo integração simples e dados estruturados corretamente.


✨ Funcionalidades

  • CRUD Completocreate, read, update, delete.
  • Suporte a Tipos Especiais → conversão automática de JSON para Timestamp, GeoPoint e Reference.
  • Criação Flexível → escolha entre IDs automáticos (collection/{id}) ou IDs definidos (collection/meu-id).
  • IA-Friendly → parâmetros pensados para fácil integração com modelos de linguagem.

⚙️ Configuração

  1. No n8n, vá em Credentials e crie uma nova credencial do tipo Firebase Admin API.
  2. Cole o conteúdo do seu arquivo Service Account JSON do Firebase/Google Cloud.
    • Para gerar: Configurações do Projeto > Contas de Serviço > Gerar nova chave.

🚀 Como Usar

O node firestore aceita os parâmetros principais: operation, path e data.

🔹 Criando Novos Documentos (operation: "create")

Cria um documento em uma coleção no Firestore.

Parâmetros obrigatórios:

  • operation: "create"
  • path: Caminho da coleção
    • clientes/{id} → gera ID automático
    • clientes/cliente_joao_silva → usa ID definido
  • data: Objeto JSON com os campos do documento

📐 Estrutura do Objeto data

Tipos Padrão

  • string"nome": "João da Silva"
  • number"idade": 35
  • boolean"cliente_ativo": true
  • null"data_segundo_contato": null
  • array"tags": ["vip", "comprador_recorrente"]
  • map"endereco": { "rua": "Av. Principal", "numero": 123 }

Tipos Especiais (Firestore)

Use __type para indicar o tipo:

Tipo Estrutura JSON
Timestamp { "__type": "timestamp", "value": "YYYY-MM-DDTHH:mm:ss.sssZ" }
GeoPoint { "__type": "geopoint", "latitude": <numero>, "longitude": <numero> }
Reference { "__type": "reference", "path": "colecao/id_do_documento" }

📝 Exemplo Completo

{
  "operation": "create",
  "path": "clientes/{id}",
  "data": {
    "nome_completo": "Carlos Andrade",
    "idade": 42,
    "cliente_premium": true,
    "ultima_reclamacao": null,
    "interesses": ["tecnologia", "viagens", "investimentos"],
    "contato": {
      "email": "carlos.andrade@email.com",
      "telefone": "+5511987654321"
    },
    "data_adesao": {
      "__type": "timestamp",
      "value": "2025-09-09T18:54:34.000Z"
    },
    "local_preferencial": {
      "__type": "geopoint",
      "latitude": -15.7942,
      "longitude": -47.8825
    },
    "vendedor_responsavel": {
      "__type": "reference",
      "path": "vendedores/vendedor_id_007"
    }
  }
}

Discussion