访问调试接口:
curl -X GET "http://localhost:3000/api/admin/debug-users" \
-H "X-Admin-Token: YOUR_ADMIN_TOKEN"或在浏览器控制台:
fetch('/api/admin/debug-users', {
headers: { 'X-Admin-Token': localStorage.getItem('adminToken') }
}).then(r => r.json()).then(console.log)症状:
- 所有方法都成功,但
userCount为 0 user_profiles表也为空
解决方案:
- 访问 Supabase Dashboard → Authentication → Users
- 检查是否有用户
- 如果没有,先注册一个测试用户
症状:
method2_directClient返回 401/403 错误- 错误信息包含 "Invalid API key" 或 "Unauthorized"
解决方案:
# 1. 访问 Supabase Dashboard
# Settings → API → service_role (secret)
# 2. 更新 .env.local
SUPABASE_SERVICE_ROLE_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...症状:
config.hasServiceKey为 falseconfig.supabaseUrl为 undefined
解决方案:
# 检查环境变量
grep SUPABASE .env.local
# 重启开发服务器
npm run dev症状:
- 连接到错误的 Supabase 项目
- 其他项目的数据
解决方案:
确认 NEXT_PUBLIC_SUPABASE_URL 指向正确的项目
症状:
method3_userProfiles有数据- 但
method1和method2的 auth.users 为空
解决方案:
- 检查 Service Role Key 是否有 admin 权限
- 确认使用的是
service_role不是anonkey
# 在项目根目录执行
grep -E "SUPABASE|NEXT_PUBLIC_SUPABASE" .env.local应该看到类似:
NEXT_PUBLIC_SUPABASE_URL=https://xxxxx.supabase.co
SUPABASE_SERVICE_ROLE_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZS1kZW1vIiwicm9sZSI6InNlcnZpY2Vfcm9sZSIsImV4cCI6MTk4MzgxMjk5Nn0.EGIM96RAZx35lJzdJsyH-qQwv8Hdp7fsn3W0YpN81IU
NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
- 登录 Supabase Dashboard
- 选择你的项目
- 进入 Authentication → Users
- 查看是否有用户数据
如果 Dashboard 显示有用户,但 API 返回空,则是配置问题。