3.5 KiB
3.5 KiB
快速解决 Analytics RPC 函数问题
🚨 当前问题
Searched for the function public.get_teacher_analytics with parameters columns, end_date, limit, start_date, teacher_id or with a single unnamed json/jsonb parameter, but no matches were found in the schema cache.
✅ 立即解决方案
步骤 1: 在 Supabase SQL Editor 中执行简化版函数
- 打开 Supabase 项目控制台
- 进入 SQL Editor
- 复制并执行
analytics_rpc_simple.sql文件中的所有内容
步骤 2: 验证函数创建成功
在 SQL Editor 中运行:
-- 检查函数是否创建成功
SELECT routine_name, routine_type
FROM information_schema.routines
WHERE routine_schema = 'public'
AND routine_name IN ('get_teacher_analytics', 'get_top_performers', 'get_chart_data')
ORDER BY routine_name;
应该看到 3 个函数都存在。
步骤 3: 测试函数调用
-- 测试各个函数
SELECT public.get_teacher_analytics();
SELECT public.get_top_performers();
SELECT public.get_chart_data();
步骤 4: 在 Supabase API 文档中测试
- 进入项目的 API 页面
- 在 RPC 部分找到新创建的函数
- 测试调用
步骤 5: 刷新应用并测试
重新加载 Analytics 页面,应该能够看到测试数据。
📊 返回的测试数据
get_teacher_analytics 返回:
{
"total_students": 28,
"total_assignments": 12,
"completion_rate": 87.5,
"average_score": 82.3,
"active_classes": 4,
"total_submissions": 285,
"pending_reviews": 15,
"graded_submissions": 270
}
get_top_performers 返回:
[
{
"student_id": "550e8400-e29b-41d4-a716-446655440001",
"name": "王小明",
"username": "wangxiaoming",
"score": 96.8,
"submission_count": 12,
"completion_rate": 100.0,
"class_name": "高三(1)班",
"rank_position": 1
},
// ... 更多学员数据
]
get_chart_data 返回:
[
{
"date_key": "2024-06-01",
"value": 75.5,
"label": "完成率",
"count": 15
},
// ... 更多图表数据
]
🔧 前端调试
已更新 Analytics 页面的数据处理函数:
- 更好的错误处理: 显示具体错误信息
- 数据格式兼容: 正确处理 RPC 返回的数据格式
- 调试信息: 在控制台输出详细的调试信息
🚀 后续升级
当基础功能正常工作后,可以:
- 替换为真实数据: 使用
analytics_rpc_functions.sql中的完整版本 - 连接真实数据库: 确保数据表结构正确
- 优化性能: 添加索引和查询优化
🔍 故障排除
如果仍然出现错误:
-
检查 Supabase 连接
SELECT current_user, current_database(); -
检查函数权限
SELECT routine_name, security_type FROM information_schema.routines WHERE routine_name = 'get_teacher_analytics'; -
检查 RLS 策略
SELECT tablename, policyname, permissive FROM pg_policies WHERE tablename LIKE 'ak_%'; -
重新授权函数
GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO authenticated;
✅ 预期结果
执行上述步骤后,Analytics 页面应该:
- ✅ 正常加载,不显示错误信息
- ✅ 显示概览统计卡片(学员总数、作业总数等)
- ✅ 显示优秀学员排行榜
- ✅ 显示图表占位符(显示数据数量)
- ✅ 显示近期活动列表
Analytics 功能将正常工作,显示测试数据,为后续真实数据集成做好准备。