> ## Documentation Index
> Fetch the complete documentation index at: https://help.helloazhenweb.top/llms.txt
> Use this file to discover all available pages before exploring further.

# Birthday Wall 常见问题与故障排查指南

> 关于 Birthday Wall 功能、数据库设置、自托管、祝福墙行为以及管理后台最常见问题的解答。

本页面汇总了搭建和运行 Birthday Wall 时最常被问到的问题。如果你遇到的问题不在这里，请检查浏览器控制台和 Vercel 部署日志中的具体错误信息 — 它们通常会直接指向问题原因。

<AccordionGroup>
  <Accordion title="Birthday Wall 真的会播放音频吗？">
    不会。电台功能是一种视觉化的音乐体验。它会展示歌曲元数据（标题、艺人、专辑）、歌词和主题背景图，但不会实际流式播放任何音频文件。使用它无需任何音乐版权或音频托管。
  </Accordion>

  <Accordion title="祝福真的是匿名的吗？">
    是的。当访客提交祝福时，Birthday Wall 只会存储其 IP 地址的哈希值（而非 IP 本身），且仅用于速率限制。该哈希不可逆，无法还原原始 IP。除此之外，不会收集或保存姓名、邮箱或任何其他身份信息。
  </Accordion>

  <Accordion title="如何修改倒计时的日期？">
    编辑 `lib/birthday-config.ts` 中的生日日期，然后重新部署站点（或本地开发时使用 `npm run dev` 重启开发服务器）即可。倒计时会在运行时从该配置文件读取目标日期，所以编辑文件加重新部署就够了。
  </Accordion>

  <Accordion title="倒计时卡在 0 不动，是哪里出问题了？">
    没出问题 — 这是设计如此。在生日当天，倒计时会归零并保持。生日次日清晨，倒计时会自动重置并开始向下一年同一天倒计时。如果你在并非生日的日期看到 0，请仔细检查 `lib/birthday-config.ts` 中的日期值，并确认你当前所在的时区是否正确。
  </Accordion>

  <Accordion title="我提交了祝福但没有显示。">
    常见原因有两个：

    1. **Supabase 凭据缺失或不正确** — 确认 `NEXT_PUBLIC_SUPABASE_URL`、`NEXT_PUBLIC_SUPABASE_ANON_KEY` 和 `SUPABASE_SERVICE_ROLE_KEY` 已在环境中正确设置。在 Vercel 上请检查 **Settings → Environment Variables**，更改后需要重新部署。
    2. **提交时 API 报错** — 打开浏览器开发者工具，切到 **Console** 或 **Network** 标签，重新提交祝福。`/api/` 路由返回的任何错误响应都会带有具体的错误信息。

    如果提交显示成功但祝福仍然不显示，请在 Supabase 的 **Table Editor** 中直接检查 **messages** 表，确认数据是否真的写入。
  </Accordion>

  <Accordion title="如何添加更多游戏？">
    游戏房间在设计上预留了未来扩展空间。目前只有 Cake Drop 可用。新游戏会作为 `/games/` 下的新路由添加，并从游戏大厅链接过去。添加新游戏需要修改代码并重新部署。
  </Accordion>

  <Accordion title="Birthday Wall 可以同时为多个人使用吗？">
    Birthday Wall 围绕一次只服务一位寿星设计。姓名、生日日期和所有个性化内容都是为一个人配置的。如果要为多个人庆祝，请为每个人单独部署一份应用 — 每份都有自己的 Vercel 项目、Supabase 项目和生日配置。Vercel 的免费 Hobby 套餐允许创建多个项目。
  </Accordion>

  <Accordion title="如何查看提交的祝福？">
    在浏览器中访问 `/admin`（或者你配置了管理员子域名时，访问 `admin.<your-domain>`）。你会被重定向到 `/admin/login`。输入管理员账号的邮箱和密码。登录后即可查看所有提交的留言，并在管理后台管理页面可见性和注册码。
  </Accordion>

  <Accordion title="可以不用 Supabase 运行 Birthday Wall 吗？">
    可以。以下页面无需任何 Supabase 连接即可工作：

    * **首页**（`/`） — 倒计时
    * **电台** — 歌曲元数据和歌词显示
    * **报告**（`/report`） — 年度报告页面
    * **游戏**（`/games`） — Cake Drop 和游戏大厅

    只有祝福墙需要数据库：`/write` 页面（提交祝福）和留言墙（展示祝福）在未配置 Supabase 时都会报错。如果你不需要祝福墙功能，可以放心地不配置 Supabase 直接部署。
  </Accordion>

  <Accordion title="如何重置或清空所有祝福？">
    你可以直接在 Supabase 仪表板中删除留言，无需写任何代码：

    1. 打开你的 Supabase 项目，点击左侧的 **Table Editor**。
    2. 选择 **messages** 表。
    3. 删除单条数据，选中后点击 **Delete** 按钮。
    4. 一次性清空所有祝福，打开 **SQL Editor** 并运行：

    ```sql theme={null}
    DELETE FROM messages;
    ```

    该操作不可撤销。在清空之前，请确保你已有备份或导出，以便保留数据。
  </Accordion>
</AccordionGroup>
