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 };
});