Supabase

JS-библиотека Supabase прекрасно работает с серверными API Qwik, такими как routeLoader$, routeAction$ или server$.

Сначала установите Supabase в свой Qwik-проект:

npm install @supabase/supabase-js supabase-auth-helpers-qwik

Вторым шагом будет добавление конфигурации PUBLIC_SUPABASE_URL и PUBLIC_SUPABASE_ANON_KEY в качестве переменных окружения в файл .env, "anon" ключ безопасен в плане раскрытия на стороне клиента.

PUBLIC_SUPABASE_URL=https://xxxxxxx.supabase.co
PUBLIC_SUPABASE_ANON_KEY=eyJhb.......

Вы должны иметь возможность получить эти значения из панели Supabase, создать новый файл .env.local в корне проекта и вставить их туда.

Примечание: Можно использовать Supabase с Qwik полностью на стороне клиента, однако при этом вы потеряете некоторые преимущества в производительности, которых можно достичь, используя сервер. Для получения рабочего примера и кода перейдите по ссылке в этот репозиторий.

Серверная часть

Теперь клиент Supabase можно использовать на стороне сервера - в routeLoader и routeAction - путём вызова функции createServerClient.

import { routeLoader$ } from '@builder.io/qwik-city';
import { createServerClient } from 'supabase-auth-helpers-qwik';
 
export const useDBTest = routeLoader$(async (requestEv) => {
  const supabaseClient = createServerClient(
    requestEv.env.get("PUBLIC_SUPABASE_URL")!,
    requestEv.env.get("PUBLIC_SUPABASE_ANON_KEY")!,
    requestEv
  );
  const { data } = await supabaseClient.from('test').select('*')
  return { data };
});

Участники

Спасибо всем участникам, которые помогли сделать эту документацию лучше!

  • manucorporat
  • hamatoyogi
  • igorbabko
  • Benny-Nottonson
  • mrhoodz
  • samijaber
  • aendel