【愚公系列】《人人都是AI程序员》010-基础设施搭建(Supabase 深度实战:构建你的数字总部)

举报
愚公搬代码 发表于 2026/03/27 08:56:21 2026/03/27
【摘要】 💎【行业认证·权威头衔】✔ 华为云天团核心成员:特约编辑/云享专家/开发者专家/产品云测专家✔ 开发者社区全满贯:CSDN博客&商业化双料专家/阿里云签约作者/腾讯云内容共创官/掘金&亚马逊&51CTO顶级博主✔ 技术生态共建先锋:横跨鸿蒙、云计算、AI等前沿领域的技术布道者🏆【荣誉殿堂】🎖 连续三年蝉联"华为云十佳博主"(2022-2024)🎖 双冠加冕CSDN"年度博客之星TOP...

💎【行业认证·权威头衔】
✔ 华为云天团核心成员:特约编辑/云享专家/开发者专家/产品云测专家
✔ 开发者社区全满贯:CSDN博客&商业化双料专家/阿里云签约作者/腾讯云内容共创官/掘金&亚马逊&51CTO顶级博主
✔ 技术生态共建先锋:横跨鸿蒙、云计算、AI等前沿领域的技术布道者

🏆【荣誉殿堂】
🎖 连续三年蝉联"华为云十佳博主"(2022-2024)
🎖 双冠加冕CSDN"年度博客之星TOP2"(2022&2023)
🎖 十余个技术社区年度杰出贡献奖得主

📚【知识宝库】
覆盖全栈技术矩阵:
◾ 编程语言:.NET/Java/Python/Go/Node…
◾ 移动生态:HarmonyOS/iOS/Android/小程序
◾ 前沿领域:物联网/网络安全/大数据/AI/元宇宙
◾ 游戏开发:Unity3D引擎深度解析

🚀前言

每一位独立创造者心中都有一个梦想:用最少的成本,撬动最大的可能。

在这个技术平权的黄金时代,世界级的工具正以前所未有的姿态向你敞开怀抱。

我们将一起构建你的“数字根据地”-个不需要巨额投资,却拥有专业级能力的技术基础设施。从选择专属的“数字门牌号”(域名),到搭建能够承载百万级访问的云端平台;从配置开发环境的第一个命令,到掌握程序员的“必修课”(版本控制)-每一步都精心设计,确保你能以最低的学习成本,获得最大的创造自由。

当你周围的人还在为“服务器好贵”“开发好难”犹豫不决时,你已手握一套从0到1的完整装备。

在本系列结束时,你将不再是“有想法的人”,而是真正“有能力实现想法的行动者”。

🚀一、Supabase 深度实战:构建你的数字总部

你有一个绝妙的商业点子——可能是一个创新的在线社区、一个高效的项目管理工具,也可是一个精美的个人作品集网站。你已打造好华丽的“店面”(前端用户界面),它看起来界面精美、交互流畅,但新的问题接踵而至:用户的注册信息存放在哪里?用户发布的内容如何安全保管?商品库存怎样实时更新?谁能查看后台的销售数据?

这些问题的答案,都指向应用背后的核心——后端。后端是数字业务的“后勤部”“安保部”“档案室”和“中央机房”的集合体。在传统模式下,搭建这样的“总部”需要雇用昂贵的工程师团队,从系统设计、服务器配置、数据库搭建,到编写业务逻辑和安全规则,整个过程耗时数月甚至数年,成本高得令人却步。

这正是无数创业者和创造者望而却步的鸿沟。但今天,我们将要跨越这道鸿沟——借助革命性的工具 Supabase,开启全新的构建范式。你不需要从零开始混合水泥、烧制砖块,Supabase 已为你准备好顶级的模块化“总部建筑套件”。你只需要像拼搭积木一样,按自己的蓝图组合这些强大的模块,几小时内就能拥有一个世界级的数字总部。

在本节中,我们将以“构建数字总部”为核心比喻,带你来一次完整的 Supabase 工具链实战。我们会一起为这个总部进行“落成典礼”(了解 Supabase 是什么)、巡视“核心部门”(核心功能解析),再亲手为它添置“文件柜”(创建数据表)、建立“部门联系”(理解表关系)、设置“门禁系统”(用户认证)、部署“安保条例”(行级安全),并启用它的“中央仓库和全球物流系统”(文件存储)。

🔎1.开源后端时代:Supabase 全景解析

在正式动工之前,先全面认识一下我们的“建筑材料”——Supabase:它是什么、由哪些部分组成,以及为何是构建数字总部的最佳选择。

用专业术语来说,Supabase 是开源的后端即服务(BaaS)平台。我们用“数字总部”的比喻来拆解它。

假设你要成立一家公司,需要办公总部。传统做法是买地、设计、建造;而 BaaS 就像专业的商业地产公司,已建好设施齐全的现代化办公楼。你不用关心大楼结构、水电、网络,只需“拎包入驻”,租用办公室就能开工。BaaS 就是数字世界中的这种服务,它把数据库、用户认证、文件存储等复杂的后端基础设施打包成现成的服务,让你直接使用,大幅节省时间和成本。

BaaS 领域有一个非常著名的市场领先者——Google 旗下的 Firebase,它功能强大、稳定可靠,如同位于市中心黄金地段的顶级写字楼。但它是“专有”或“闭源”的,这意味着作为租客,你永远看不到大楼的建筑图纸,无法定制改造其结构。更重要的是,你所有的业务和数据会深度绑定在这个平台上。一旦服务商决定大幅涨价或改变服务条款,“搬家”会是一项极其痛苦复杂的工程(这在行业里称为“供应商锁定”)。

现在,Supabase 登场了。它将自己明确定位为 “Firebase 的开源替代方案”,这里的核心关键词是 “开源”

如果说使用 Firebase 是租用一个你无法改变的办公室,那么使用 Supabase 就好比从一家顶级的建筑公司那里,不仅拿到了一座预制好的、功能完备的总部大楼,还获得了一整套完整详细的建筑图纸。

“开源”意味着:

  • 透明性——你可以查看每一处“墙体”的“钢筋结构”,了解每个系统的运作逻辑,没有任何黑箱操作;
  • 控制权——手握图纸,理论上你可以对大楼进行任何想要的改造;
  • 自由度——这是最关键的一点,如果你对 Supabase 官方提供的云托管平台不满意,或业务发展到一定规模,希望拥有完全独立的掌控权,你可以带着图纸将整个“数字总部”原封不动地“搬迁”到自己的服务器上(即“私有化部署”或“自托管”)。你永远拥有“退路”,彻底摆脱了“供应商锁定”的风险。

这背后反映了软件开发领域的重要潮流:从依赖大型科技公司提供的封闭服务,转向拥抱开放、透明、赋予开发者最大自由度的解决方案。对于非技术背景的创始人而言,这意味着公司的核心命脉——数据和后端基础设施,不再只掌握在某一个科技巨头手中,你真正拥有了 “数字资产所有权”

🦋1. 核心功能模块

现在,我们走进这座崭新的“数字总部”,看看它都配备了哪些开箱即用、协同联动的“核心部门”和“基础设施”——它们将为我们的数字业务提供全方位的支持。

☀️数据库:总部的中央档案室

在探索 Supabase 的各个功能模块之前,我们先聚焦最核心的部分——数据库。毕竟,无论前端界面多么华丽,最终都需要一个可靠的载体来存储和管理数据。

  • 总部比喻:这是数字总部的“心脏”,一个巨大、安全且井然有序的中央档案室。公司所有的核心信息都以结构化的形式放在这里。每一个“数据表”(table)如同贴有清晰标签的文件柜,文件柜中的每一行(row)数据,都是一份具体的档案。
  • 技术内涵:Supabase 数据库基于“世界上最先进的开源关系型数据库” PostgreSQL 构建。PostgreSQL 拥有 30 余年的历史,以稳定、强大的功能和极高的可靠性而闻名。选择 Supabase,意味着你的数据从一开始就存放在了一个金融级别、久经考验的系统中。

☀️用户认证:总部的安全前台与门禁系统

有了安全可靠的“中央档案室”,还需要确保只有授权人员才能进入数字总部。这就需要一套完善的身份验证和访问控制系统。

  • 总部比喻:这是总部门口的安保前台,配备了一套高科技的身份识别与门禁系统。它负责管理所有人员的进出:办理“入职手续”(注册)、验证“员工ID卡”(登录),并精细管控不同级别的员工可以访问的区域(权限管理)。
  • 技术内涵:Supabase Auth 大幅简化了这套复杂的安保系统,它原生地支持邮箱密码登录、魔法链接(Magic Link),以及 Google、GitHub 等社交媒体一键登录。你只需在后台进行简单配置,就能灵活开启或关闭各类登录方式。

☀️API:总部的内部通信网络

在安全的“中央档案室”和完善的“门禁系统”就位后,数字总部还需要一套高效的内部通信网络,确保各个部门之间能够顺畅地交换信息。这就是 API 的作用所在。

  • 总部比喻:API 是总部的内外通信系统,如同“内部电话”和“邮件收发室”。当“公司大堂”(前端应用)需要从“中央档案室”(数据库)获取或提交信息时,通过 API 发起请求,经身份和权限核实后,由 API 返回相应结果,确保了信息交换的有序和安全。
  • 技术内涵:这是 Supabase 的一个强大特性。当你创建好一个“数据表”的瞬间,Supabase 就会自动为其配置好一整套安全、标准的 RESTful API。这省去了传统开发中工程师编写接口代码的大量时间,实现了效率的提升。

☀️实时订阅:总部的实时监控中心

现代数字业务的一个核心需求是“实时性”——用户期望获取最新的信息,无论是社交媒体的新消息、协作文档的实时编辑,还是电商平台的库存更新,都需要数字总部具备强大的“实时感知”能力。

  • 总部比喻:想象在总部安保中心内有一面巨大的实时监控屏,大楼各处动态尽收眼底——中央档案室存入新文件,前台迎来新访客,所有变化都能即时捕捉。
  • 技术内涵:Supabase 的实时引擎依托 PostgreSQL 的日志监听功能,紧密监控数据库的各类变动。一旦数据被创建、更新或删除,系统会立刻捕捉到这个信号,并通过 WebSocket 广播系统,将消息推送给所有正在监听的前端应用,是构建聊天应用、实时协作平台的强大支撑。

☀️云函数:总部的自动化智能助理

除了这些核心的基础设施,数字总部还需要一些“智能化”的后台服务,以处理那些复杂的业务逻辑和自动化任务——这正是云函数的用武之地。

  • 总部比喻:云函数是总部的“机器人助理团队”,在后台自动执行预设任务——新用户注册时发送欢迎邮件,每日午夜生成销售报表,无须人工干预即可高效运转。
  • 技术内涵:Supabase Functions 允许编写独立的服务器端代码(目前兼容 TypeScript/JavaScript),这些代码片段就是你的“机器人助理”,专门处理这些异步、自动化的后台任务,让数字总部能够 7×24 智能、高效地运转。

☀️文件存储:总部的安全仓库与全球物流服务

最后,数字总部还需要专门的空间,存储和管理 Logo 图片、员工头像、产品视频等“非结构化”数字资产——这就是文件存储系统的价值。

  • 总部比喻:除了“档案室”,总部还需要一个巨大、安全的“中央仓库”,存放各类非结构化的“物品”,满足多样化资产存储需求。
  • 技术内涵:Supabase Storage 不仅提供了这个“仓库”,更捆绑了内容分发网络(CDN) 服务。CDN 如同一个覆盖全球的超级物流网络,当文件存入中央仓库后,CDN 会自动把文件的副本分发至世界各地的“前置节点”。当海外用户需要访问文件时,系统会自动从离他最近的节点调取文件,极大地提升了文件的加载速度和用户体验。

为了更直观地理解这些核心模块,我们梳理了表 3-2,供你快速对照参考。

表 3-2 数字总部部门导览

Supabase 功能模块 数字总部核心部门比喻
数据库(Database) 中央档案室(基于坚固的 PostgreSQL 构建)
用户认证(Auth) 安全前台与门禁系统
API 内部通信网络(电话与邮件系统)
实时(Realtime)订阅 实时监控中心(实时信息流)
云函数(Function) 自动化智能助理(机器人服务团队)
文件存储(Storage) 安全仓库与全球物流服务(自带 CDN)

通过这次全面巡览,相信你已经对这座“数字总部”的强大功能有了全面清晰的认识。接下来,我们将讨论为什么在众多选择中,Supabase 是最适合的那个。

🦋2. 为什么选择 Supabase

在决定为你的事业建造“数字总部”时,你会面临一个关键的战略抉择。市面上有几种主流的“建造方案”,对其进行分析后你就明白为什么 Supabase 是最明智的选择。

第一种方案是从零自主建造。 这相当于雇用庞大的工程师团队,从零搭建总部大楼。虽然这样做能拥有 100% 的控制权,每一个细节都可以定制,但代价是高昂的成本与漫长的开发周期,需要投入大量时间和资金,风险极高。对于绝大多数初创企业和个人创造者来说,这几乎是不可能的。

第二种是使用闭源 BaaS 平台,比如 Google 的 Firebase。 这就像入驻设施顶级、服务一流的商务中心,签约后立刻就能拥有功能完备的办公室,快速开展业务。它的优势在于启动速度快、服务稳定可靠,让你能专注于核心业务。但核心问题是 “你是租客而非业主”,你必须遵守服务商的所有规则,无法改动其内部结构。更致命的是“供应商锁定”风险——如果有一天服务涨价,或者服务商决定关闭某项你高度依赖的功能,你将陷入被动,迁移成本极高。

而我们选择的 Supabase 方案,好比一家顶尖的建筑科技公司提供的“预制化总部模块”,可以像搭积木一样快速组装。它完美地融合了前两种方案的优点,同时也规避了它们的缺点:在速度与便利性上,与 Firebase 一样能快速启动运行;最关键的区别在于所有权与控制权——你不仅拿到了预制好的大楼,还拥有完整的“建筑图纸”,掌握最终的控制权,这意味着你有随时“搬家”的自由。未来业务发展壮大或对 Supabase 官方的云服务不满意时,你可以带着图纸,将数字总部迁移到任何服务器,彻底消除“供应商锁定”的后顾之忧。

这个选择的背后,隐藏着对于非技术创始人至关重要的深层逻辑:Supabase 本质上是一款风险管理工具。

创办数字业务本身就充满不确定性。选择 Firebase 这类封闭平台,会增加“平台风险”;从零构建,则要面对巨大的“执行风险”。而 Supabase 凭借“开源”和“基于 PostgreSQL 开放标准”的特性,巧妙化解了这两种风险。它足够快,让你能迅速将产品推向市场,降低了“执行风险”;同时又提供了永远敞开的“逃生通道”(自托管能力),降低了“平台风险”。

🦋3. 系统架构剖析:以 PostgreSQL 为核心的服务生态

在结束导览前,让我们来看一眼这座“数字总部”的核心“总设计蓝图”。

许多同类平台的架构可能是多种技术的拼凑——用技术 A 做数据库,用技术 B 做用户认证,再用技术 C 做实时通信,最后用大量集成代码进行黏合。这种方式容易导致系统内部不一致,学习曲线陡峭,还可能出现兼容性问题。

Supabase 采取了一种更为优雅和坚固的架构理念:万物基于 PostgreSQL。所有核心功能模块都不是独立于数据库的外部挂件,而是从 PostgreSQL 这根“主干”上生长出的原生“枝干”。

  • API 网关:直接读取数据库结构,自动翻译成标准的 API 接口。
  • 用户认证系统:巧妙利用 PostgreSQL 内部且经数十年验证的“角色和权限管理”机制。
  • 实时订阅引擎:直接订阅 PostgreSQL 内部的“预写日志”——这是数据库记录自身所有变更的官方渠道,效率极高。
  • 行级安全:这是 PostgreSQL 数据库的一个核心特性,Supabase 仅提供友好的图形界面,就能让你轻松配置强大的数据库原生安全策略。

这样的设计带来了几个巨大的好处:

  • 一致性与稳定性:所有核心功能都源于同一坚实内核,系统表现出极高的一致性和稳定性。
  • 高性能:许多操作直接在数据库层面完成,借力 PostgreSQL 数十年优化的强大性能。
  • 知识的复用与增值:这一点对于初学者尤其宝贵——学习 Supabase 的过程,其实是在潜移默化中掌握 PostgreSQL 这个未来数十年都极具价值的通用技术。你学到的数据结构、关系、安全策略等知识,都是可迁移的硬技能。

我们的“总部导览”到此结束。现在,理论学习已经足够,是时候亲手为我们的数字总部添置第一件“家具”了。

🔎2.五分钟实战:在仪表盘中创建数据表

我们新落成的“数字总部”还空空如也,第一个任务是为“中央档案室”(数据库)打造第一个定制的“文件柜”——专门存放公司所有“项目”信息的数据表,将其命名为 projects

在动手之前先明确几个核心概念:“数据表”(table)本质上是一个结构化的电子表格——表格文件本身就是存储一类信息的整体容器;顶部的“表头”对应“列”(column),用于定义信息类别(如“项目名称”“截止日期”“负责人”等),每一列还会明确规定数据类型(如文本、日期等),以确保格式统一;表格中的每一行(row)对应一条完整的个体记录,包含该个体的全部相关信息。

在理解了这些基础概念后,我们就可以动手创建数据表了。

  1. 登录 Supabase 账户,进入项目仪表盘,会看到类似“总部管理办公室”的操作界面,这是后续所有配置的核心入口。
    在这里插入图片描述

  2. 在左侧的垂直导航栏中,找到带有表格图标的 Table Editor(表格编辑器),这是进入“中央档案室”的入口,点击进入数据表管理页面。

  3. 页面中出现一个 Create a table(创建一个表) 按钮,点击启动“文件柜”的创建流程。
    在这里插入图片描述

  4. 为“文件柜”命名:在 Name(名称) 字段中输入 projects(数据库领域习惯用小写命名表名,便于后续协作);可在 Description(描述) 字段中添加备注(如“用于存放公司所有项目信息”),方便后续快速了解表的用途。

  5. 设计“文件柜的抽屉”(定义列):表单下方的 Columns(列) 区域会默认添加 id(每条记录的唯一身份标识,确保数据不重复)和 created_at(记录创建时间的时间戳,方便追溯),这里保持默认即可。之后根据“项目信息”的需求添加自定义列:

    • 点击 Add column(添加列),输入 name,类型选择 text,用于记录“项目名称”;
    • 再次点击 Add column,输入 due_date,类型选择 date,对应“截止日期”;
    • 最后点击 Add column,输入 status,类型选择 text,用于标记“项目状态”。

    完成这些设置后的最终效果如图 3-16 所示。

    图 3-16 创建 projects 表的列配置
    在这里插入图片描述

  6. 所有配置检查无误后,点击表单右下角的 Save(保存) 按钮,几秒钟后 projects 表就会出现在表格编辑器的列表中。

至此,你已经亲手为数字总部打造好第一件定制“家具”,后续的项目信息有了专属的存储容器。

🔎3.五分钟实战:理解表关系

一个项目通常包含许多具体的“任务”。一种较为合理的做法是,再创建一个专门存放“任务”的“文件柜” tasks,并建立连接机制,让每个任务明确归属对应的项目。

“表关系”(Table Relationship)是关系型数据库的核心优势——就像在现实办公室中,你在每张“销售发票”文件的右上角,都标注对应的“客户档案编号”。这个编号就是一种“关系”的体现,在数据库中称为 “外键”(Foreign Key)。通过外键,两个独立的数据表就能从逻辑上连接起来,形成高效的数据网络。

接下来,我们通过实际操作来创建这一关联关系,步骤如下:

  1. 首先确保你还在 Supabase 项目的 Table Editor 区域,然后点击 Create a table 按钮,开始创建“文件柜” tasks

  2. Name 字段中输入 tasks,作为存储任务信息的数据表。

  3. 设计列结构:保留默认的 id(唯一标识)和 created_at(创建时间)列,点击 Add column 添加 description 列,类型选择 text,用于存储任务的具体描述。

  4. 再次点击 Add column,添加 is_complete 列,类型选择 boolean(布尔类型,只有 truefalse 两个值),用于标记任务是否完成。

  5. 创建外键(关键步骤):点击 Add column,输入 project_id(外键列的命名惯例为“关联表名_id”),类型选择 int8(一个足够大的整数类型),然后点击名称右侧的链条图标建立关系。

  6. 在弹出的 Add foreign key relationship to tasks 窗口中进行关系配置:Select a schema 保持默认的 public,在 Select a table to reference to 下拉菜单中选择创建的 projects 表,在 public.tasks 下拉菜单中选择 projects 表中的唯一标识列 id,完成后的最终效果如图 3-17 所示。

    图 3-17 配置外键关系
    在这里插入图片描述

  7. 完成所有配置后,点击 Save 按钮关闭关系配置窗口,然后再次点击右下角的 Save 按钮,保存整个 tasks 表。

这次,你不仅创造了第二个“文件柜” tasks,更重要的是在两个表之间架起了一座 “信息桥梁”

🔎4.十分钟实战:探索用户认证(Supabase Auth)

我们的“数字总部”需要一套完善的“安保和人事系统”,为员工办理“入职”,发放 ID 卡,让他们能够通过身份验证后安全进入大楼。

“认证”(Authentication)的核心思想是回答 “你是谁”。当你用用户名和密码登录一个网站时,本质上就是在进行认证。而 Supabase Auth 就是我们数字总部的专业“安全前台”,它已帮我们处理了所有与用户认证相关的复杂工作,我们只需简单配置即可。

下面通过实际操作来配置这套认证系统,让数字总部具备完整的用户管理能力。

  1. 找到“安全前台”。登录 Supabase 项目仪表盘,在左侧导航栏中找到锁形图标 Authentication(认证),点击进入认证管理区域。

  2. 查看可用的“登录方式”。在认证管理页面的左侧子菜单中点击 Sign In/Providers(登录/提供商),会看到 Supabase 支持的所有登录方式(见图 3-18)。Email 选项默认开启,支持传统的邮箱+密码注册登录。向下滚动可看到 Google、GitHub、Facebook 等社交登录提供商的图标,只需点击开关并简单配置,就能让用户通过这些账号一键登录。

    图 3-18 登录提供商列表
    在这里插入图片描述

  3. 手动“招聘”第一位员工。在真实应用中用户会自行注册。为了方便测试,Supabase 允许管理员直接在后台添加用户。在认证管理页面的左侧子菜单中点击 Users(用户),再点击右上角的 Add user(添加用户);在 Email 字段输入你的测试邮箱,在 Password 字段设置密码,最后点击 Create user 按钮完成创建。

  4. 验证“入职”结果。弹窗关闭后,用户列表中会出现新创建的那位“新员工”,系统已自动为其生成一个唯一的 UID(用户身份标识符),如图 3-19 所示。

    图 3-19 用户列表中新创建的用户
    在这里插入图片描述

恭喜,你完成了第一次“员工入职”手续。Supabase Auth 通过不可逆的算法加密存储密码,并为用户生成了唯一的身份 ID,现在我们的数字总部有了第一位合法注册的员工。

🔎5.十分钟实战:用 RLS 保护数据

这是迄今为止最重要的一项安保升级——目前所有已登录用户都能查看、修改 projects“文件柜”里的所有文件。我们的目标是建立一套精密的“安保规则”,确保员工仅能查看和修改自己创建的项目。

RLS(Row-Level Security,行级安全)是一种将安全规则下沉到每一行数据的强大安全模型。它不是在“档案室门口”站岗,而是给每一份文件(每一行数据)都贴上一个隐形的“权限标签”。当用户访问数据时,系统会校验其 ID 卡和文件的“权限标签”是否匹配。这种安全检查发生在数据库内部,安全且稳固。

下面通过实际操作来配置 RLS,让数字总部具备细粒度的权限控制能力。

  1. 为项目文件“指定主人”。回到 Table Editor,选择 projects 表。点击表头最右侧的“+”图标添加新列,命名为 user_id。类型字段选择 uuid(因为 Supabase 用户的 ID 就是这种格式)。点击 Foreign Key 旁的 Add foreign key,在弹窗中设置 Schema 为 auth、Table 为 users、Column 为 id。保存这层关系后再保存整个表的修改。

  2. 前往“安保策略中心”。在左侧主导航栏找到盾牌形图标 Authentication(认证),点击进入后,在左侧子菜单中点击 Policies(策略)

  3. projects 表启用 RLS。在策略管理页面找到 projects 表,点击右侧的 Enable RLS 按钮(如果一开始看到的是 Disable RLS 按钮,意味着 RLS 策略已默认开启)。注意,在启用 RLS 的瞬间,默认的 “拒绝所有” 规则会立即生效,此时任何人都无法通过 API 访问 projects 表中的数据。这是安全设计的最佳实践:先关闭所有大门,再选择性地开放。

  4. 创建第一条“安保策略”。在 projects 表右上方点击 Create policy(新建策略)

  5. 选择策略模板。在右侧的 Templates 列表中滚动鼠标,选择最后一个 Enable users to view their own data only(仅允许用户查看自己的数据),点击选中,如图 3-20 所示。

    图 3-20 选择 RLS 策略模板
    在这里插入图片描述

  6. 定制“读取”规则。在策略配置界面中进行如下设置:

    • Policy Name(策略名称) 输入一个清晰的名称,如“用户仅可查看自己的项目”;
    • Policy Command for clause(允许的操作) 选择 SELECT(读取/查询数据);
    • 将具体策略代码中的 using expression(生效条件) 修改为 (select auth.uid()) = user_id(核心逻辑),具体可参考图 3-20 左侧的代码示例。

    表达式 (select auth.uid()) = user_id 的含义是:仅当当前登录用户的唯一 ID(auth.uid())与数据行的 user_id 列的值一致时,才允许该用户读取该行数据。

  7. 保存并审查策略。点击 Save policy 按钮保存当前策略。

  8. 创建其他操作策略。按照类似逻辑配置“插入”(INSERT)、“更新”(UPDATE)和“删除”(DELETE)操作的规则,具体如下:

    • 插入(INSERT)策略:操作选择 INSERT,将 with check expression(检查条件) 设置为 (select auth.uid()) = user_id
    • 修改(UPDATE)和删除(DELETE)策略:操作分别选择 UPDATEDELETEusing expression 设置为 (select auth.uid()) = user_id

你已完成一次真正意义上的“企业级”安全配置!RLS 将安全逻辑与数据直接绑定,规则一旦定义便持续生效。Supabase 通过友好的可视化界面,让你轻松实现了过去需要资深数据库管理员才能完成的复杂安全设置。

🔎6.十分钟实战:文件存储与 CDN 分发

我们的项目管理工具还需要处理项目需求文档、设计稿、演示视频等各类文件附件。这就需要为总部启用 “中央安全仓库”(Supabase Storage)。

Supabase Storage 专为存储和管理非结构化数据设计,可以将其看作一个巨大的仓库。为了实现有序管理,可以在仓库内划分出不同的“区域”,每个区域专门存放一类文件,这个“区域”称为 “存储桶”(bucket)。创建存储桶时,需要指定其“公共”或“私有”属性:公共桶中的文件只要知道链接就能访问,私有桶中的文件则需要严格的权限验证。更强大的是,Supabase Storage 自带 CDN(内容分发网络) 增值服务——文件上传后,Supabase 会自动通过 CDN 将文件副本缓存到全球边缘节点服务器,大幅提升了文件的加载速度。

下面通过实际操作来配置这套文件存储系统,为数字总部添加强大的文件管理能力。

  1. 找到“中央仓库”入口。在 Supabase 仪表盘左侧的主导航栏中,找到桶形图标 Storage(存储),点击进入存储管理区域。
  2. 创建第一个“存储区域”。点击 New bucket(新建存储桶),在 Bucket name 字段输入 project-files。勾选 Public bucket(公共存储桶) 选项(在真实项目中,对于需要保护的文件,应设为私有并配置访问策略)。点击 Create 按钮完成创建。
  3. 将文件上传到存储桶。点击创建好的 project-files 桶,进入内部后点击 Upload file(上传文件),从电脑中选择任意文件完成上传。
  4. 获取文件的公开链接。将鼠标悬停在已上传的文件上,在右侧的三点下拉列表中选择 Get URL(获取链接) 图标,链接自动复制到剪贴板。
  5. 见证全球高速分发。打开一个新的浏览器标签页,将复制的链接粘贴到地址栏并按回车键,文件会立即加载出来。这个链接指向 Supabase 的 CDN 网络。无论用户身处何地,都能以极快的速度访问。

在这里插入图片描述

你已成功地为数字总部配置了世界级的仓储与物流系统。你得到的不仅仅是存储地址,而是自带全球加速功能的 CDN 链接。在传统开发中,CDN 的配置需要额外的步骤和费用,而 Supabase 将其无缝地集成在存储功能中。

🔎7.小结

就在大约一小时前,你面对的还只是一个抽象的“后端”概念,以及一个空荡荡的 Supabase 项目面板;现在,不妨审视你亲手创造的成果。

  • 拥有了完整的关系型数据库:包含 projectstasks 表,逻辑关系清晰,是业务数据的核心蓝图。
  • 部署了企业级的安全防护系统:启用用户认证功能,配置细粒度的行级安全策略,确保用户只能访问自身数据。
  • 获得了强大的文件存储与分发系统:存储空间可无限扩展,搭配全球 CDN 加速,文件在全球任何角落都能快速加载。

最关键的是,你无须编写一行代码就完成了这一切。

你已成功建造了一个坚实、可靠、功能完备的“数字总部”。它不再是空壳,而是装备精良、安保严密、信息畅通的运营基地。从这里出发,你可以构建任何想象中的应用。

这就是 Supabase 等现代 BaaS 平台赋予我们的力量,它将后端开发的陡峭门槛夷为平缓坡地,让每一个有创造力的人都能跨越技术鸿沟,将想法变为现实。

通过这次实战,你已经掌握了构建现代化数字产品的核心逻辑和关键技能。你,已是名副其实的创造者和建设者。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。