🚀 Getting Started
Installation
# Install Supabase CLI
brew install supabase/tap/supabase
# Install JS Client
npm install @supabase/supabase-js
# Login to CLI
supabase login
📝 Client Setup
JavaScript/TypeScript Setup
import { createClient } from '@supabase/supabase-js'
const supabase = createClient(
'https://your-project.supabase.co',
'your-anon-key'
)
🔍 Data Queries
Basic Queries
// Select all
const { data, error } = await supabase
.from('table_name')
.select()
// Select specific columns
const { data } = await supabase
.from('table_name')
.select('column1, column2')
// Filter results
const { data } = await supabase
.from('table_name')
.select()
.eq('column', 'value')
// Order results
const { data } = await supabase
.from('table_name')
.select()
.order('column', { ascending: true })
📥 Data Modification
// Insert data
const { data, error } = await supabase
.from('table_name')
.insert([{ column: 'value' }])
// Update data
const { data, error } = await supabase
.from('table_name')
.update({ column: 'new_value' })
.eq('id', 1)
// Delete data
const { data, error } = await supabase
.from('table_name')
.delete()
.eq('id', 1)
👤 Authentication
// Sign up
const { user, error } = await supabase.auth.signUp({
email: 'example@email.com',
password: 'password'
})
// Sign in
const { user, error } = await supabase.auth.signIn({
email: 'example@email.com',
password: 'password'
})
// Sign out
const { error } = await supabase.auth.signOut()
// Get user
const user = supabase.auth.user()
📁 Storage
// Upload file
const { data, error } = await supabase
.storage
.from('bucket')
.upload('file.pdf', file)
// Download file
const { data, error } = await supabase
.storage
.from('bucket')
.download('file.pdf')
// Delete file
const { data, error } = await supabase
.storage
.from('bucket')
.remove(['file.pdf'])
🔄 Real-time Subscriptions
// Subscribe to changes
const subscription = supabase
.from('table_name')
.on('*', payload => {
console.log('Change received!', payload)
})
.subscribe()
// Unsubscribe
subscription.unsubscribe()
💡 Pro Tips
- Use Row Level Security (RLS) for data protection
- Leverage PostgreSQL functions for complex operations
- Use policies for fine-grained access control
- Enable realtime only for necessary tables
- Use foreign keys for data integrity