diff --git a/chatdesk-ui/lib/supabase/browser-client.ts b/chatdesk-ui/lib/supabase/browser-client.ts index 0667397..9ab4559 100644 --- a/chatdesk-ui/lib/supabase/browser-client.ts +++ b/chatdesk-ui/lib/supabase/browser-client.ts @@ -41,6 +41,9 @@ // } + + + import { createBrowserClient } from "@supabase/ssr"; import { Database } from "@/supabase/types"; @@ -48,18 +51,20 @@ import { Database } from "@/supabase/types"; let _supabase: SupabaseClient | null = null; // 创建 Supabase 客户端的工厂方法 -export function createClient() { - // 如果客户端已经初始化,则直接返回 - if (_supabase) return _supabase; +export async function createClient() { + if (_supabase) return _supabase; // 如果客户端已创建,直接返回 - // 获取动态的 SUPABASE_URL(同步获取) - const url = window?.RUNTIME_ENV?.SUPABASE_URL ?? "http://localhost:8000"; // 默认回退值 - const key = process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!; // 使用环境变量中的匿名密钥 + // 获取动态的 SUPABASE_URL + const url = window?.RUNTIME_ENV?.SUPABASE_URL ?? "http://localhost:8000"; + const key = process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!; // 使用环境变量中的匿名密钥 - // 初始化 Supabase 客户端并缓存 + // 初始化并缓存 Supabase 客户端实例 _supabase = createBrowserClient(url, key); return _supabase; } -// 返回已初始化的同步 Supabase 客户端实例 -export const supabase = createClient; \ No newline at end of file +// 返回已初始化的 Supabase 客户端实例 +export const supabase = async () => { + const client = await createClient(); // 等待客户端初始化 + return client; // 返回已初始化的客户端实例 +}; \ No newline at end of file