Firebase 是 Google 用于开发移动和 Web 应用程序的平台,包括后端服务、分析、身份验证工具和推送通知。根据 Google Firebase (2025) 的报告,全球有超过 300 万应用程序使用该平台。Firebase 使开发人员无需管理服务器和基础设施即可快速创建后端。
要点
Firebase 是 Google 提供的一套云服务,用于开发移动和 Web 应用程序。Firebase 成立于 2011 年,是一家提供实时数据库(Realtime Database)数据同步的初创公司。2014 年,Google 以约 3 亿美元收购了 Firebase,此后该平台已发展成为一个包含 20 多种服务的综合性生态系统,涵盖应用程序开发的各个阶段。
Firebase 解决移动开发的三个主要任务:无需管理服务器即可创建后端(Firestore、Cloud Functions、Hosting)、监控和分析(Analytics、Crashlytics、Performance Monitoring)以及用户服务(Authentication、Cloud Messaging、Remote Config)。根据 Google(2025)的数据,Firebase SDK 已安装在全球超过 30 亿台设备上。该平台支持 Android、iOS、Web、Unity 和 Flutter,使其成为从初创公司到大型企业任何规模项目的跨平台解决方案。免费 Spark 套餐使开发者无需财务投入即可开始使用 Firebase,这对于独立开发者和小型工作室在原型设计和产品发布阶段尤其重要。
Firebase 包含 20 多种服务,分为三类。每个类别解决特定的开发任务,从后端创建到用户交互。
“Build” 类别包括用于创建后端服务:Firestore(NoSQL 数据库)、Authentication(通过电子邮件、Google、Apple、Facebook 进行身份验证)、Cloud Storage(文件存储)、Cloud Functions(服务器函数)、Realtime Database(实时数据库)和 Hosting(Web 内容托管)。
“Release & Monitor” 类别包括测试和监控服务:Crashlytics(实时错误报告)、Performance Monitoring(性能测量)、Test Lab(在 Google 云中的真实设备上测试)和 App Distribution(测试版本分发)。“Engage” 类别包括用户交互服务:Cloud Messaging(推送通知)、In-App Messaging(应用内消息)、Remote Config(远程配置)和 A/B Testing(实验)。Analytics 是连接所有其他服务的核心服务 — Crashlytics、Cloud Messaging 和 A/B Testing 的数据会自动发送到 Analytics,以构建用户行为的完整画面。
将 Firebase 连接到应用程序始于在 Firebase Console(console.firebase.google.com)中注册项目。注册后,Firebase 会生成适用于 Android 的 google-services.json 配置文件或适用于 iOS 的 GoogleService-Info.plist 配置文件。对于 Android,需要在项目级别的 build.gradle 文件中添加 Google Services 插件,并在应用程序模块中应用它。
以下 Kotlin Android 应用程序的 Firebase 基本配置示例展示了 build.gradle(项目和应用级别)文件中的最小配置,以及应用程序代码中的 Firebase 初始化:
// build.gradle(项目级别)
buildscript {
dependencies {
classpath "com.google.gms:google-services:4.4.2"
}
}
// build.gradle(应用级别)
plugins {
id "com.google.gms.google-services"
}
dependencies {
implementation "com.google.firebase:firebase-analytics:22.1.0"
implementation "com.google.firebase:firebase-firestore:25.1.0"
implementation "com.google.firebase:firebase-auth:23.1.0"
}
// Application.kt
import com.google.firebase.FirebaseApp
import com.google.firebase.analytics.FirebaseAnalytics
class App : Application() {
override fun onCreate() {
super.onCreate()
FirebaseApp.initializeApp(this)
val analytics = FirebaseAnalytics.getInstance(this)
}
}
代码显示了配置的三个部分:在根 build.gradle 中添加 Google Services 插件,在应用程序模块中添加 Firebase 依赖项(analytics、firestore、auth),以及在 Application 类中初始化 Firebase。配置完成后,Firebase 会自动开始收集分析数据:用户会话、屏幕、事件和人口统计数据,无需额外代码。通过 Remote Config 进行配置允许远程更改应用程序的行为,而无需通过商店发布更新。对于 iOS,配置过程类似:需要将 GoogleService-Info.plist 添加到项目并在 AppDelegate 中调用 FirebaseApp.configure()。
Firebase Analytics 是一项免费分析服务,可跟踪无限数量的事件。Analytics 收集有关用户、会话、购买和转化的数据,并自动记录首次启动、应用程序更新和与推送通知交互的事件。与 Google Ads 的集成可以跟踪广告活动的效果并优化用户获取成本。
Firebase Analytics 提供用户留存报告、群组分析、转化漏斗以及按人口统计数据、兴趣和行为进行的受众细分。所有事件均免费且无数量限制。标准报告的数据在 Firebase Console 中实时可用,延迟不超过 2-4 小时。
Crashlytics 是一项实时错误监控服务。Crashlytics 自动收集有关应用程序崩溃的报告,包括完整的堆栈跟踪、设备状态、操作系统版本以及崩溃前的用户操作序列。根据 Firebase(2025)的数据,Crashlytics 在 85% 的情况下自动确定崩溃的根本原因,将诊断时间从数小时缩短到数分钟。该服务按类型对崩溃进行分组,并显示趋势——上次更新后崩溃数量是增加还是保持稳定。
以下在 Kotlin 中的 Firebase Analytics 用户事件日志记录示例展示了如何跟踪应用程序中的关键用户操作:
import com.google.firebase.analytics.FirebaseAnalytics
import com.google.firebase.analytics.logEvent
class AnalyticsTracker {
private lateinit var analytics: FirebaseAnalytics
fun trackPurchase(itemId: String, price: Double) {
analytics.logEvent(FirebaseAnalytics.Event.PURCHASE) {
param(FirebaseAnalytics.Param.ITEM_ID, itemId)
param(FirebaseAnalytics.Param.PRICE, price)
}
}
}
代码记录了一个带有产品 ID 和价格的购买事件。Firebase Analytics 自动将事件与当前用户和会话关联,无需额外配置即可构建转化漏斗、群组分析和留存报告。分析数据在 Firebase Console 中实时更新,并可导出到 BigQuery 以通过 SQL 查询进行深入分析。借助与 Google Ads 的集成,您可以跟踪从广告展示到应用程序中目标操作的完整周期,并根据用户行为数据优化广告活动。
Firebase 提供两种数据库:Cloud Firestore(推荐)和 Realtime Database(旧版)。它们之间的选择取决于项目在可扩展性、查询复杂性和数据模型方面的要求。
Cloud Firestore 是一个 NoSQL 文档型数据库,具有设备间自动同步、离线支持和无需开发人员干预的扩展能力。数据存储在组织为集合的文档中,与 Realtime Database 的节点树相比,简化了结构化和查询操作。
Firestore 和 Realtime Database 的主要区别:Firestore 支持复杂查询,包括多字段筛选、排序和限制(limit),而 Realtime Database 对于复杂查询需要在客户端进行排序。Firestore 自动扩展到数百万个并发连接,Realtime Database 限制为 200,000 个并发连接。Firestore 使用基于路径匹配和访问规则(security rules)的更清晰的安全模型,降低了配置错误的风险。
以下在 Kotlin 中使用 Cloud Firestore 的示例展示了在用户集合中写入和读取数据:
import com.google.firebase.firestore.FirebaseFirestore
import com.google.firebase.firestore.SetOptions
data class User(
val name: String = "",
val email: String = ""
)
class UserRepository {
private val db = FirebaseFirestore.getInstance()
fun saveUser(userId: String, user: User) {
db.collection("users")
.document(userId)
.set(user, SetOptions.merge())
}
fun loadUser(userId: String) {
db.collection("users")
.document(userId)
.get()
.addOnSuccessListener { doc ->
val user = doc.toObject(User::class.java)
}
}
}
代码定义了一个 data class User 和一个 UserRepository 类,包含 saveUser 和 loadUser 方法,用于操作 Firestore 中的 “users” 集合。save 方法使用 SetOptions.merge 进行部分文档更新,不会覆盖现有字段。load 方法通过 get 使用 onSuccessListener 回调执行异步文档读取。Firestore 通过监听器(SnapshotListener)自动同步设备间的更改,无需额外的 WebSocket 基础设施即可构建实时应用程序。这种架构简化了聊天、动态消息流以及其他需要在所有用户设备上即时更新数据的功能的开发。
常见问题
Firebase — Google 平台,提供一套用于移动和 Web 应用程序的云服务。用于快速创建无需管理服务器的后端、分析、用户身份验证、推送通知以及监控应用程序性能和错误。
Firebase 提供免费 Spark 套餐,有限制:最多 50,000 个同时 Firestore 连接、10 GB 存储和每月 10 GB 下载。对于大多数初创公司和小型项目,Spark 在启动和测试阶段完全满足需求。
Firebase 提供两种数据库:Cloud Firestore(推荐)— 具有离线支持和复杂查询的 NoSQL 文档数据库,以及 Realtime Database — 用于实时数据的 JSON 结构,查询和扩展支持有限。
Firebase Analytics 免费收集关于用户行为的无限事件。数据自动与 Crashlytics、Cloud Messaging 和 Google Ads 集成。可导出到 BigQuery 以使用 SQL 创建自定义报告。
Firebase 支持 Android、iOS、Web、Flutter、Unity 和 C++。SDK 可用于 Kotlin、Swift、JavaScript、Dart 和 C++。该平台允许在所有平台上使用相同的服务,简化了跨平台开发和项目维护。
总结
我们将开发一款交钥匙移动应用程序
IT Sectr自2017年以来为初创企业和企业打造iOS和Android应用程序。我们将为您提供咨询并提出最佳解决方案。