Comment utiliser Supabase avec Next.js?

Comment utiliser Supabase avec Next.js?

Guide pour utiliser Supabase avec Next.js

Next.js est un framework pour le développement d'applications web basé sur React. Il facilite la création d'applications performantes et scalables en fournissant des fonctionnalités telles que le routage en temps réel et la gestion des différents statuts du serveur.

Supabase est une plateforme open source qui permet de gérer facilement une base de données Postgres avec une interface web. Cela peut être très utile pour les développeurs qui veulent utiliser une base de données avec Next.js sans avoir à gérer les aspects techniques liés à la configuration et à la gestion de la base de données.

Pour configurer Next.js avec Supabase, vous devez d'abord vous assurer que vous avez installé les dernières versions de Next.js et de Supabase. Vous pouvez vérifier les versions en utilisant les commandes suivantes :

npx create-next-app@latest
npm install @supabase/supabase-js

Une fois que vous avez installé Next.js et Supabase, vous pouvez configurer l'accès à votre base de données en ajoutant les informations de connexion dans un fichier .env dans le répertoire racine de votre projet. Vous devez ajouter les variables suivantes :

SUPABASE_URL=https://<your-project-name>.supabase.co
SUPABASE_ANON_KEY=<your-project-anon-key>

Vous pouvez trouver les informations de connexion en vous connectant à votre compte Supabase et en naviguant vers la page "Project Settings" de votre projet.

Ensuite, vous pouvez utiliser l'objet supabase de l'package supabase-client pour accéder à votre base de données depuis votre application Next.js. Voici un exemple simple qui affiche tous les enregistrements d'une table dans une page de votre application :

import { createClient } from '@supabase/supabase-js'

// Create a single supabase client for interacting with your database
const supabase = createClient('https://<your-project-name>.supabase.co', 'your-project-anon-key')

Vous pouvez maintenant importer votre client dans un composant et écrire la query correspondante:

import React from 'react'
import { useRouter } from 'next/router'
import { useEffect } from 'react'
import { supabase } from './src/supabase.js'

const Page = () => {
  const router = useRouter()
  const { table } = router.query

  useEffect(() => {
    supabase
      .from(table)
      .select('*')
      .then((response) => {
        // handle response
      })
  }, [])

  return (
    <div>
      // display data
    </div>
  )
}

export default Page

Ce code utilise la méthode from de l'objet supabase pour sélectionner une table dans votre base de données, puis la méthode select pour sélectionner tous les enregistrements de cette table. Vous pouvez ensuite utiliser la réponse de la requête pour afficher les données dans votre page.

Il est important de noter que vous devez utiliser la fonction useEffect de React pour exécuter la requête à la base de données, car elle ne doit être effectuée qu'une seule fois au chargement de la page. Vous pouvez également utiliser la fonction useRouter de Next.js pour récupérer les paramètres.

Guillaume Duhan