import { createClient, SupabaseClient } from "@supabase/supabase-js"; import type { Database } from "@/types/supabase"; let supabase: SupabaseClient | null = null; // 简单的存储适配器,使用localStorage const storageAdapter = { getItem: async (key: string) => { try { const item = localStorage.getItem(key); return item; } catch (error) { console.error("Storage get error:", error); return null; } }, setItem: async (key: string, value: string) => { try { localStorage.setItem(key, value); } catch (error) { console.error("Storage set error:", error); } }, removeItem: async (key: string) => { try { localStorage.removeItem(key); } catch (error) { console.error("Storage remove error:", error); } }, }; export const getSupabaseClient = (): SupabaseClient => { if (!supabase) { if (!process.env.NEXT_PUBLIC_SUPABASE_URL || !process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY) { throw new Error('Missing Supabase environment variables'); } supabase = createClient( process.env.NEXT_PUBLIC_SUPABASE_URL, process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY, { db: { schema: "limq" }, auth: { storage: storageAdapter, persistSession: true, autoRefreshToken: true, }, } ); } return supabase; }; export const clearSupabaseInstance = () => { supabase = null; };