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