Integration
O LIP utiliza Firebase como backend principal para autenticação, banco de dados em tempo real e armazenamento de conversas.
🔥 Serviços Firebase Utilizados
1. Firebase Authentication
- Propósito: Autenticação multi-tenant com custom claims
- Uso: Login de usuários, controle de acesso por empresa
- Providers: Email/Password, Google OAuth
2. Firestore Database
- Propósito: Armazenamento de conversas, mensagens e configurações
- Uso: Dados em tempo real com listeners
- Estrutura: NoSQL com coleções e documentos
3. Realtime Database
- Propósito: Sincronização de presença e status de agentes
- Uso: Online/offline status, typing indicators
- Performance: Latência ultra-baixa
4. Cloud Functions
- Propósito: Backend serverless para webhooks e processamento
- Uso: Triggers automáticos, scheduled jobs
- Runtime: Node.js 22
5. Firebase Storage
- Propósito: Armazenamento de mídias (imagens, vídeos, documentos)
- Uso: Anexos de mensagens WhatsApp
- CDN: Distribuição global
📦 Configuração
Frontend (LipMKT)
Backend (backendLip)
🔐 Autenticação Multi-Tenant
Custom Claims
O LIP utiliza custom claims para implementar multi-tenancy:
Verificação de Token
Login no Frontend
📊 Estrutura do Firestore
Coleções Principais
firestore/
├── companies/ # Empresas (tenants)
│ └── {companyId}/
│ ├── name: string
│ ├── tenantId: string
│ ├── isActive: boolean
│ ├── subscription: object
│ ├── whatsappConfig: object
│ └── aiConfig: object
│
├── conversations/ # Conversas WhatsApp
│ └── {conversationId}/
│ ├── companyId: string
│ ├── phoneNumber: string
│ ├── status: 'bot'|'human'|'closed'
│ ├── assignedAgentId?: string
│ ├── priority: 'low'|'medium'|'high'
│ ├── tags: string[]
│ ├── lastMessageAt: timestamp
│ └── whatsappUser: object
│
├── messages/ # Mensagens individuais
│ └── {messageId}/
│ ├── conversationId: string
│ ├── content: string
│ ├── messageType: string
│ ├── isFromBot: boolean
│ ├── messageOrigin: 'whatsapp'|'dashboard'
│ ├── timestamp: timestamp
│ └── metadata: object
│
├── flows/ # Fluxos de automação
│ └── {flowId}/
│ ├── companyId: string
│ ├── name: string
│ ├── isActive: boolean
│ ├── trigger: object
│ ├── nodes: array
│ └── edges: array
│
├── agents/ # Agentes/Usuários
│ └── {userId}/
│ ├── email: string
│ ├── displayName: string
│ ├── companyId: string
│ ├── role: string
│ ├── isOnline: boolean
│ └── lastSeen: timestamp
│
└── custom_functions/ # Funções personalizadas
└── {functionId}/
├── companyId: string
├── name: string
├── code: string
└── trigger: string
🔄 Tempo Real com Firestore
Listener de Conversas
Listener de Mensagens
📡 Realtime Database (Presença)
Status de Agentes
Escutar Status de Agentes
💾 Storage (Mídias)
Upload de Arquivo
🔒 Security Rules
Firestore Rules
Realtime Database Rules
Storage Rules
🚀 Boas Práticas
1. Batching de Operações
2. Paginação
3. Cleanup de Listeners
📊 Monitoramento
Firebase Console
- Authentication: Gerenciar usuários
- Firestore: Visualizar dados em tempo real
- Storage: Gerenciar arquivos
- Functions: Logs e métricas
- Usage: Monitorar quotas e custos
Logs no Backend
🔗 Próximos Passos
- Autenticação - Detalhes de multi-tenant auth
- Frontend Estrutura - Como usar Firebase no React
- Backend Visão Geral - Firebase Admin no Node.js
- Deploy - Configuração de produção
Firebase é o coração do LIP! 🔥
🎨 Demonstração: Syntax Highlighting Avançado
O LipDocs agora suporta syntax highlighting avançado com:
- Linguagens suportadas: TypeScript, JavaScript, JSON, Python, SQL, etc.
- Tema dark otimizado: Cores personalizadas para melhor legibilidade
- Scrollbars customizados: Visual moderno e funcional
- Fontes monospace: JetBrains Mono, Fira Code, SF Mono
Exemplo Completo com TypeScript
Exemplo com JSON (Security Rules)
Exemplo com SQL (Para comparações)
✨ Os blocos de código agora têm:
- Syntax highlighting automático
- Tema dark personalizado
- Scrollbars estilizados
- Fontes monospace premium
- Suporte a múltiplas linguagens
Última atualização
26 de novembro de 2025