BaaS 与实时数据层(Supabase/Firebase/Appwrite)

共 42 题
#

1. Supabase(Postgres + RLS 行级权限、Realtime、Storage、Auth、Edge Functions、Supabase JS)

A 它不提供认证
B 它基于 Postgres 提供 RLS、Auth、Realtime、Storage、Edge Functions,前端用 JS SDK 直接安全访问 ✓ 正确答案
C 它不支持 Realtime
D 它不允许前端直接访问数据库
#

2. RLS 策略编写、测试与常见漏洞模式,auth.uid() 绕过、策略表达式注入与 security definer 函数风险

A RLS 无需测试
B auth.uid() 总是安全
C security definer 函数不会泄漏数据
D 需用 auth.uid() 精确授权并测试绕过路径,避免宽松策略、表达式注入与 security definer 泄漏 ✓ 正确答案
#

3. Firestore 实时查询 + Offline Persistence 在客户端订阅的工程价值

A onSnapshot 实时订阅无需轮询,Offline Persistence 支持离线缓存与自动同步 ✓ 正确答案
B Firestore 只能轮询
C 离线时无法访问数据
D 实时订阅无法取消
#

4. Firebase Auth(Email/OAuth/Anonymous)

A 匿名用户无法升级
B 它只支持 Email
C 它支持 Email、OAuth 与匿名认证,匿名可升级为正式账号,快速接入多登录方式 ✓ 正确答案
D 它不支持 OAuth
#

5. Firebase 的 Cloud Functions 与 App Check 在生产环境的工程价值

A App Check 只用于前端
B Cloud Functions 提供可信服务端逻辑,App Check 验证请求来源防滥用,组合提升生产安全 ✓ 正确答案
C Cloud Functions 可被客户端绕过
D App Check 无法防滥用
#

6. Firebase Firestore 的查询限制与 RLS-like Security Rules 的设计

A Security Rules 只能读
B 索引无需管理
C 复合查询需索引,Security Rules 用 request.auth 与 resource.data 限制读写,需保证查询与规则一致 ✓ 正确答案
D 查询与规则无关
#

7. Firebase(Firestore、Realtime DB、Auth、Storage、Cloud Functions、App Check)

A 它不支持认证
B 它只提供数据库
C 它无实时能力
D 它提供 Auth、Firestore、Storage、Cloud Functions、App Check 等组合能力,快速构建全栈应用 ✓ 正确答案
#

8. Appwrite / Pocketbase / Convex 在 BaaS 替代 Firebase 的工程取舍

A Appwrite 自托管完整、Pocketbase 轻量单文件、Convex 托管实时类型安全,按需求选型 ✓ 正确答案
B 三者完全等价
C 三者都只能托管
D 三者都无实时能力
#

9. Firebase Cloud Messaging (FCM) 在 Web Push 的工程价值与现代浏览器支持

A 无需 Service Worker
B 所有浏览器都完整支持
C 页面关闭时无法接收
D 它通过 Service Worker 接收推送通知,主流浏览器支持但 iOS Safari 有限,需处理权限与订阅 ✓ 正确答案
#

10. Pocketbase(单二进制 Go 后端、SQLite + Auth + Realtime)

A 它不支持认证
B 它需要复杂部署
C 它是单二进制 Go 后端,内置 SQLite、Auth 与 Realtime,轻量易部署但扩展性有限 ✓ 正确答案
D 它无实时能力
#

11. Appwrite(自托管 BaaS)的取舍

A 自托管可控数据与隐私但需承担运维与扩展成本,适合有运维能力的团队 ✓ 正确答案
B 自托管无需运维
C 它无法自托管
D 自托管完全没有成本
#

12. Supabase RLS(行级安全)在前端的落地

A 前端用 JS SDK 直查库,RLS 按 auth.uid() 在服务端过滤行,业务校验仍需服务端 ✓ 正确答案
B RLS 只在前端生效
C 前端可绕过 RLS
D RLS 无需策略
#

13. Supabase 的 Row Level Security(RLS)

A RLS 用策略按 auth.uid() 控制行级访问,让前端安全直连数据库 ✓ 正确答案
B RLS 只控制列
C RLS 无法按用户过滤
D RLS 无需启用
#

14. Realtime 订阅与监听机制

A 通过 WebSocket 频道订阅 postgres_changes 等事件,实时更新 UI,需管理订阅与重连 ✓ 正确答案
B Realtime 只能轮询
C 无法监听 insert
D 订阅无需取消
#

15. RLS 在前端的安全边界(前端绕过属白盒测试)

A 策略错误不影响安全
B 前端可以绕过 RLS
C RLS 只在前端生效
D RLS 在服务端强制执行前端无法绕过,前端绕过属白盒测试,关键是策略要写对 ✓ 正确答案
#

16. Supabase Realtime 在协同编辑(CRDT、Yjs)

A Realtime 只能单向推
B Yjs 无法解决冲突
C Realtime 实时同步变更,Yjs 用 CRDT 解决冲突,二者结合实现多人协同编辑 ✓ 正确答案
D 协同编辑无需同步
#

17. Realtime 的吞吐上限与背压处理,高频更新场景下的消息合并与客户端节流策略

A 消息合并会降低性能
B Realtime 无吞吐上限
C 无需节流
D 高频更新需消息合并与客户端节流,避免超出吞吐上限与 UI 卡顿 ✓ 正确答案
#

18. Edge Functions 冷启动与区域部署,Deno deploy 的延迟优化与就近路由的工程实践

A 减少依赖会增加延迟
B 冷启动无法优化
C 区域部署与延迟无关
D 减小 bundle、延迟初始化优化冷启动,就近区域部署降低延迟 ✓ 正确答案
#

19. Supabase Edge Functions(Deno)协同 SSR/BFF 的工程价值

A SSR 无需服务端逻辑
B Edge Functions 只能在前端运行
C 密钥可放在前端
D Edge Functions 作为 BFF 执行服务端逻辑与密钥操作,避免暴露给前端,协同 SSR 渲染 ✓ 正确答案
#

20. Supabase Storage(带 RLS)与 S3 兼容性在文件上传的工程价值

A 它不兼容 S3
B Storage 不支持权限控制
C Storage 支持 RLS 控制文件访问并兼容 S3,实现安全上传与访问控制 ✓ 正确答案
D 文件上传无需安全
#

21. Firebase Authentication 在多 Provider(Email、Google、Apple)

A 它支持 Email/Google/Apple 等多方式登录,需处理账户合并与用户状态管理 ✓ 正确答案
B 它只支持单一 Provider
C 多 Provider 无需账户合并
D 它不支持 Google
#

22. Cloud Firestore 的安全规则(Security Rules)

A 用 request.auth 与 resource.data 定义集合读写权限,按用户授权并校验字段 ✓ 正确答案
B 规则只能 allow true
C 规则无法校验字段
D 规则与用户无关
#

23. Firebase Realtime Database 与 Firestore 的工程取舍

A 两者查询能力相同
B Realtime DB 简单实时但查询弱,Firestore 文档查询强、支持索引与事务,按需求选型 ✓ 正确答案
C Firestore 更简单
D Realtime DB 支持复杂查询
#

24. Firebase Hosting 在静态站点的部署与 CDN 的现代边界

A 它支持任何复杂 SSR
B 它提供静态托管与 CDN、重写与 headers,适合静态站,复杂动态需结合 Functions ✓ 正确答案
C 它无 CDN
D 它无法配置重写
#

25. BaaS 数据建模、接口契约、迁移、密钥管理、可观测性等后端基础概念不可省略

A 迁移管理不重要
B BaaS 无需数据建模
C 数据建模、契约、迁移、密钥管理、可观测性对 BaaS 生产应用同样关键,不可省略 ✓ 正确答案
D 可观测性可省略
#

26. Supabase Realtime(WebSocket broadcast / presence / db changes)

A 三者只能用于广播
B broadcast 广播消息、presence 在线状态、db changes 订阅库表变更,覆盖不同实时需求 ✓ 正确答案
C presence 无法表示在线状态
D db changes 无法订阅变更
#

27. Supabase Auth(JWT + RLS)在前端与 Postgres 联动的工程价值

A JWT 与授权无关
B RLS 无法读取 JWT
C 前端必须自己过滤数据
D Auth 签发 JWT 携带身份,RLS 用 auth.uid() 授权,前端安全直连 Postgres ✓ 正确答案
#

28. Supabase 的 pg_cron/Edge Functions 在定时任务与边缘计算的应用

A pg_cron 执行数据库定时任务,Edge Functions 处理边缘逻辑,集成无需自建服务 ✓ 正确答案
B pg_cron 只能做边缘计算
C Edge Functions 不能处理事件
D 两者都只能签到
#

29. Supabase Auth 与 OAuth/JWT 集成

A JWT 仅用于前端展示
B OAuth 无法签发 JWT
C 支持 OAuth 第三方登录并签发 JWT,前端携带 JWT 访问数据库与 RLS ✓ 正确答案
D 第三方登录无法配置
#

30. AppWrite(Open Source BaaS)在多端(Web、App)

A 它无法多端
B 它只支持 Web
C 各端后端独立
D 它提供 Web/App 多端 SDK,一套后端多端复用,共享认证与数据 ✓ 正确答案
#

31. PocketBase(Go 单文件 BaaS)在中小项目的工程应用

A 它单二进制轻量部署,内置 Auth/Realtime,适合中小项目快速上线,但扩展性有限 ✓ 正确答案
B 它适合大型高并发
C 它不易部署
D 它不支持认证
#

32. Supabase 的 auth.uid() 在 RLS 的工程实践

A auth.uid() 与用户无关
B 用 auth.uid() 限制用户访问自己的数据,写最小化策略并测试认证与未认证路径 ✓ 正确答案
C 无需启用 RLS
D 策略越宽松越好
#

33. Supabase 的 postgres_changes 实时事件在协作功能的工程应用

A 它只能做广播
B 订阅表变更事件驱动实时更新,可实现多用户编辑、评论、状态同步等协作 ✓ 正确答案
C 无法订阅表变更
D 协作功能无需实时
#

34. Firebase 的 Crashlytics 在前端(Web)

A 它只能监控后端
B 它上报 JS 错误与未捕获异常,实时掌握崩溃率与错误堆栈,提升稳定性 ✓ 正确答案
C 它无法上报错误
D 它与错误无关
#

35. AppWrite 的 Functions 在事件驱动的工程价值

A 它只能手动触发
B 它支持数据库/存储事件触发执行服务端逻辑,实现事件驱动自动化 ✓ 正确答案
C 它无法监听事件
D 事件驱动与它无关
#

36. PocketBase 的 Admin UI 在内部工具的工程应用

A 它内置管理界面,可管理集合、数据、用户与规则,省去搭建管理后台成本 ✓ 正确答案
B 它只能查看
C 它无法管理用户
D 它需自建后台
#

37. Firebase Extensions 在第三方集成的现代工程实践

A 扩展无法配置
B 它不支持第三方
C 它提供预构建的第三方集成扩展,配置即可快速接入,减少自研成本 ✓ 正确答案
D 集成需完全自研
#

38. AppWrite 的 Realtime(WebSocket)

A 它基于 WebSocket 订阅集合/文档变化,实时更新无需轮询 ✓ 正确答案
B 它只能轮询
C 它无法订阅变更
D 实时更新无意义
#

39. Firebase 的 Remote Config 在功能开关的工程应用

A 它只能本地配置
B 它通过云端参数动态控制功能开关与灰度,无需发版即可调整 ✓ 正确答案
C 功能开关无法动态
D 它无法灰度
#

40. Supabase 的 CLI 与本地开发环境的现代工程实践

A CLI 本地启动、管理迁移、生成类型并部署,让本地与生产一致、schema 可版本化 ✓ 正确答案
B CLI 无法本地开发
C 迁移无法管理
D 类型无法生成
#

41. Firebase 与 Supabase 在厂商锁定(Lock-in)

A Supabase 无法迁移
B 两者锁定程度相同
C Firebase 闭源托管锁定强,Supabase 开源、基于 Postgres 可自托管,锁定相对低 ✓ 正确答案
D Firebase 可自托管
#

42. Convex、Supabase、Firebase 在全栈 BaaS + Serverless DB 的现代工程取舍

A 三者都闭源
B 三者完全等价
C Convex 类型安全反应式、Supabase 开源 SQL 可自托管、Firebase 生态成熟,按需求选型 ✓ 正确答案
D 三者都无法自托管