← 返回笔记

Supabase、审核后台与 Cloudflare Pages 部署

2026.07.06 · 云端后台 · Quiz App

Quiz App 的云端部分主要解决三个问题:账号身份、题库共享和多端进度。项目没有自己搭完整后端,而是用 Supabase 提供 PostgreSQL、Auth、RLS 和 Storage,再用 Cloudflare Pages Functions 做少量接口层。

云端表结构

文档里的核心表包括 profiles、question_banks、questions、user_progress 和 upload_requests。profiles 扩展用户角色;question_banks 保存题库审核状态;questions 保存题目内容;user_progress 保存用户进度。

profiles
question_banks(review_status: pending/approved/rejected)
questions(bank_id, type, content, answer, image_url)
user_progress(user_id, question_id, is_correct, time_taken)

题库审核

上传后的题库默认是 pending。管理员批准后全员可见;驳回后只有上传者和管理员可见。这个规则让“全员共享”不会变成无控制的公共写入,也给题库质量留出审核空间。

管理员后台

后台包括系统概览、题库审核和用户管理。用户管理里涉及角色调整和密码重置,这类操作通过 Supabase RPC 和 SECURITY DEFINER 函数完成,避免把高权限逻辑散落在前端。

Cloudflare Pages Functions 的位置

部署版里,前端请求会经过 Pages Functions。它负责把 Supabase Auth、REST 请求和 AI 格式整理请求转到对应服务。这样浏览器侧只持有 publishable key,真正敏感的 AI key 放在 Cloudflare 环境变量里。

部署纪律

这套方案的好处是轻:前端仍然可以作为静态站部署,但账号、审核和同步这些能力不会被硬塞进浏览器本地逻辑里。