Configuração do Supabase

Aprenda a configurar um projeto Supabase do zero e conectar com suas aplicações.

Passos da Configuração

1
Criar conta no Supabase
2
Criar novo projeto
3
Configurar banco de dados
4
Obter credenciais de acesso
5
Testar conexão

1. Criar Conta no Supabase

O Supabase é uma plataforma de backend como serviço (BaaS) que oferece banco de dados PostgreSQL, autenticação, armazenamento e APIs em tempo real.

Dica: O Supabase oferece um plano gratuito generoso que é perfeito para aprendizado e projetos pequenos.

  1. Acesse https://supabase.com
  2. Clique em "Start your project" ou "Sign Up"
  3. Escolha criar conta com GitHub, Google ou email
  4. Confirme seu email se necessário
  5. Faça login no dashboard do Supabase

2. Criar Novo Projeto

Após fazer login, você será direcionado para o dashboard onde pode criar seu primeiro projeto.

  1. No dashboard, clique em "New Project"
  2. Escolha uma organização (ou crie uma nova)
  3. Preencha os dados do projeto:
    • Name: Nome do seu projeto (ex: "curso-sql")
    • Database Password: Senha forte para o banco de dados
    • Region: Escolha a região mais próxima (ex: South America)
    • Pricing Plan: Selecione "Free" para começar
  4. Clique em "Create new project"
  5. Aguarde alguns minutos para o projeto ser criado

Importante: Anote a senha do banco de dados em local seguro. Você precisará dela para acessos administrativos.

3. Configurar Banco de Dados

Após a criação do projeto, você pode configurar seu banco de dados usando o SQL Editor.

Acessando o SQL Editor

  1. No dashboard do projeto, clique em "SQL Editor" no menu lateral
  2. Você verá uma interface para executar comandos SQL
  3. Pode usar templates prontos ou escrever SQL personalizado

Exemplo: Criando uma Tabela Simples

-- Criar tabela de usuários
CREATE TABLE usuarios (
    id SERIAL PRIMARY KEY,
    nome VARCHAR(100) NOT NULL,
    email VARCHAR(100) UNIQUE NOT NULL,
    created_at TIMESTAMP DEFAULT NOW()
);

-- Inserir dados de exemplo
INSERT INTO usuarios (nome, email) VALUES 
('João Silva', 'joao@email.com'),
('Maria Santos', 'maria@email.com');

-- Consultar dados
SELECT * FROM usuarios;

Configurando RLS (Row Level Security)

O RLS é importante para segurança. Para tabelas públicas de aprendizado, você pode desabilitar temporariamente:

-- Desabilitar RLS para aprendizado (NÃO recomendado em produção)
ALTER TABLE usuarios DISABLE ROW LEVEL SECURITY;

-- Ou criar políticas específicas
ALTER TABLE usuarios ENABLE ROW LEVEL SECURITY;

-- Permitir leitura para todos
CREATE POLICY "Permitir leitura pública" ON usuarios
    FOR SELECT USING (true);

-- Permitir inserção para usuários autenticados
CREATE POLICY "Permitir inserção autenticada" ON usuarios
    FOR INSERT WITH CHECK (auth.role() = 'authenticated');

4. Obter Credenciais de Acesso

Para conectar sua aplicação ao Supabase, você precisa de duas informações principais:

Encontrando as Credenciais

  1. No dashboard do projeto, clique em "Settings" no menu lateral
  2. Clique em "API" na seção de configurações
  3. Você verá as seguintes informações importantes:

Project URL

URL base do seu projeto Supabase

https://seuprojetoid.supabase.co

API Keys

anon (public): Chave pública para uso no frontend

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

service_role (secret): Chave privada para uso no backend

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

Segurança: Nunca exponha a chave service_role no frontend. Use apenas a chave anon para aplicações client-side.

5. Testar Conexão

Vamos testar a conexão com o Supabase usando JavaScript diretamente no navegador.

Teste de Conexão Interativo

Código de Exemplo

Aqui está um exemplo de como conectar ao Supabase em uma aplicação:

// Importar o Supabase
import { createClient } from '@supabase/supabase-js'

// Configurar as credenciais
const supabaseUrl = 'https://seuprojetoid.supabase.co'
const supabaseKey = 'sua-chave-anon-aqui'

// Criar cliente Supabase
const supabase = createClient(supabaseUrl, supabaseKey)

// Exemplo de consulta
async function buscarUsuarios() {
    try {
        const { data, error } = await supabase
            .from('usuarios')
            .select('*')
        
        if (error) {
            console.error('Erro:', error)
            return
        }
        
        console.log('Usuários:', data)
    } catch (err) {
        console.error('Erro de conexão:', err)
    }
}

// Chamar a função
buscarUsuarios()