要点
Firebase 是一个 Backend-as-a-Service (BaaS) 平台,提供现成的应用开发工具。Firebase 使开发人员无需从头构建服务器基础设施 — 分析、数据库、身份验证、推送通知等众多功能均可通过 SDK 立即使用。
Google 于 2014 年以 1 亿美元收购了 Firebase,并将其与 Google Cloud Platform 集成。Firebase 提供 20 多种产品,可根据项目需求进行组合。大多数服务都有慷慨的免费限制(Spark Plan),并且提供按使用量付费的计划(Blaze Plan)用于增长。
Firebase 的集成从在 Firebase Console 中创建项目并添加配置文件开始(iOS 使用 GoogleService-Info.plist,Android 使用 google-services.json)。Firebase 支持 iOS、Android、Flutter、React Native、Unity 和 Web 应用,使其成为适用于任何平台的通用解决方案。
Firebase Analytics 是一款免费的分析工具,用于收集用户行为数据。Firebase Analytics 是整个平台的核心 — 分析数据被所有其他 Firebase 服务用于定位和个性化。
Firebase Crashlytics 是追踪应用崩溃最流行的工具。Crashlytics 在每次应用崩溃时自动收集堆栈跟踪、日志和设备数据。报告按错误类型分组,可快速识别最关键的问题。
Crashlytics 支持自定义日志、键和非致命异常。非致命异常允许跟踪已处理的错误而不会导致应用崩溃 — 例如,失败的 API 请求或业务逻辑中的异常。
Firebase Performance 是监控应用性能的工具。Performance 跟踪启动时间、网络延迟、屏幕渲染和 HTTP 请求。它识别拖慢应用速度并降低用户体验的瓶颈。
将 Firebase Analytics 与 Crashlytics 集成提供了独特的能力,不仅可以查看什么崩溃了,还可以查看用户哪些操作导致了崩溃。IT Sectr 使用这种组合在生产环境中快速诊断错误 — 从检测到修复的时间缩短 3-4 倍。
Firebase 提供两个 NoSQL 数据库和用于文件的云存储。在 Firestore 和 Realtime Database 之间的选择取决于使用场景 — 两个数据库都实时同步数据,但具有不同的架构。
| 特性 | Cloud Firestore | Realtime Database |
|---|---|---|
| 数据模型 | 集合和文档(JSON 对象) | 单个大型 JSON 树 |
| 查询 | 复合、索引、排序、过滤 | 简单、从单个节点排序 |
| 扩展 | 自动、多区域 | 单区域、带宽限制 |
| 定价 | 读取/写入/删除量 | 流量和存储量 |
| 离线模式 | 支持(磁盘缓存) | 支持(内存缓存) |
| 最佳用途 | 聊天、社交网络、复杂查询 | 聊天、游戏、简单同步 |
Cloud Storage 是文件存储(图片、视频、音频)。Firebase Storage 自动扩展到 PB 级,并提供可靠的续传上传功能。与 Firebase Auth 集成以实现安全访问。
Firestore 因其灵活的查询和可扩展性而被推荐用于新项目。Realtime Database 仍然适用于数据量较小的简单聊天和游戏。IT Sectr 通常使用 Firestore 作为主数据库,仅将 Realtime Database 用于实时协作。
Firebase Authentication 是用于用户身份验证的现成解决方案。Firebase Auth 支持电子邮件/密码、Google、Apple、Facebook、Twitter、GitHub、电话身份验证和匿名登录。整个身份验证过程通过 SDK 在客户端实现。
Google Sign-In 是最流行的身份验证提供商之一。通过 Firebase Console 集成 Google Sign-In 需要 15-30 分钟,且无需后端开发。用户使用其 Google 帐户一键登录。
Firebase Auth 还通过 Admin SDK 提供后端功能。您可以在服务器上创建用户、更新个人资料、管理会话和验证 ID 令牌。与 Cloud Functions 集成可创建自定义身份验证场景。
Security Rules — Firebase 用于数据库和存储的安全机制。访问规则以声明方式描述,并在每个请求时进行检查。例如:仅当 userId 等于当前已验证用户时才允许读取文档。
Firestore 的简单 Security Rule 示例:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /users/{userId} {
allow read, write: if request.auth.uid == userId;
}
match /posts/{postId} {
allow read: if true;
allow write: if request.auth.uid == resource.data.authorId;
}
}
}
Firebase Cloud Messaging (FCM) 是用于发送推送通知的服务。FCM 每天处理高达 5000 亿条消息,支持 iOS、Android 和 Web。消息分为 notification messages(自动显示)和 data messages(应用内处理)。
Firebase Remote Config 允许在不发布新版本的情况下更改应用行为。Remote Config 用于 A/B 测试、功能开关、用户界面定制以及动态参数更改(例如广告频率、付费墙文本)。
Firebase A/B Testing 是进行实验的工具。使用不同参数创建两个版本的应用,并衡量对指标的影响(转化率、留存率、收入)。测试自动计算统计显著性并确定获胜者。
Firebase Dynamic Links 是智能链接,可将用户引导至应用中的正确位置。即使应用未安装,Dynamic Links 也能正常工作 — 在这种情况下,它们会转到商店页面,安装后恢复上下文并重定向到目标屏幕。
IT Sectr 使用 Remote Config + A/B Testing 组合来优化所有关键场景:从欢迎屏幕到支付流程。Remote Config 参数可通过 Firebase Console 实时更改 — 这提供了传统发布周期所不具备的灵活性。
Firebase Test Lab 是用于自动化应用测试的云解决方案。Test Lab 在真实的 Google 设备上运行您的测试,涵盖各种配置(不同的操作系统版本、屏幕分辨率、语言)。支持 Espresso(Android)、XCUITest(iOS)和 Robo 测试。
Firebase App Distribution 是用于分发应用 Beta 版本的平台。App Distribution 替代了 Android 的 TestFlight,并补充了 iOS 的 TestFlight。您可以上传 APK/AAB,并通过 Crashlytics 集成从测试人员那里获得反馈。
Test Lab 和 App Distribution 的结合确保了开发所有阶段的质量:从真实设备上的自动化测试到与真实用户的 Beta 测试。与 CI/CD(GitHub Actions、Bitrise)的集成使流程完全自动化。
| 服务 | 用途 | 免费限制 | iOS | Android | Web |
|---|---|---|---|---|---|
| Analytics | 收集和分析用户事件 | 无限制 | + | + | + |
| Crashlytics | 崩溃报告 | 无限制 | + | + | - |
| Firestore | NoSQL 数据库 | 1 GB 存储 | + | + | + |
| Realtime DB | 实时数据库 | 1 GB 存储 | + | + | + |
| Auth | 用户身份验证 | 无限制 | + | + | + |
| Cloud Messaging | 推送通知 | 无限制 | + | + | + |
| Remote Config | 参数管理 | 无限制 | + | + | + |
| Performance | 性能监控 | 无限制 | + | + | + |
| Test Lab | 云测试 | 10 次测试/天 | + | + | - |
| App Distribution | Beta 版本分发 | 无限制 | + | + | - |
| Cloud Functions | 按需服务器代码 | 每月 200 万次调用 | + | + | + |
常见问题
Firebase 有免费的 Spark Plan,具有慷慨的限制 — 分析、崩溃报告和身份验证都是免费且无限制的。Blaze Plan(按使用量付费)在超出限制时需要 — 例如,Firestore 中超过 1 GB 或 Cloud Functions 每月超过 200 万次调用。大多数初创公司在头 1-2 年内不会超出免费限制。
对于大多数新项目,推荐使用 Firestore。Firestore 提供更好的可扩展性、更丰富的查询和多区域复制。Realtime Database 仅适用于简单的实时场景(数据量较小的聊天、实时游戏)。
可以。Firebase 使用开放协议,数据可以导出。Firestore 具有托管导出到 BigQuery 和 Google Cloud Storage 的功能。身份验证可以通过导出密码哈希进行迁移。Cloud Functions 可以轻松地在任何后端框架上重写。
Firebase 使用多层保护:传输层加密 (TLS) 和存储层加密 (AES-256)。Security Rules 提供声明式访问控制。Firebase 还符合 SOC 1/2/3、ISO 27001 和 GDPR 标准。
由于 Google 服务被屏蔽,Firebase 在中国功能受限。针对中国市场,需要使用本地替代方案 — 例如,用 Alibaba Cloud Push 代替 FCM,或用 LeanCloud 代替 Firebase。Firebase Analytics 和 Crashlytics 在没有 VPN 的情况下也无法使用。
总结
我们将开发一款交钥匙移动应用程序
IT Sectr自2017年以来为初创企业和企业打造iOS和Android应用程序。我们将为您提供咨询并提出最佳解决方案。