设置 Firebase
将您的应用连接到 Firebase 项目
设置 Firebase 是 CoddyKit 上的免费 Android Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Android Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Android Academy 课程共包含 4 节课。
Firebase 是什么
Firebase 是 Google 的应用开发平台。它为您的 Android 应用提供现成的后端,因此您无需自行构建和托管服务器。
在本课程中,您将把应用连接到 Firebase,然后使用它最受欢迎的三项服务:
- 身份验证 — 使用电子邮件或 Google 登录用户
- Cloud Firestore — 实时 NoSQL 数据库
- Cloud Messaging (FCM) — 推送通知
第一课主要介绍设置:创建项目并将其接入 Android 应用。
创建 Firebase 项目
一切都从 Firebase 控制台 console.firebase.google.com 开始。
- 点击 添加项目,并为项目命名。
- 每个 Firebase 项目在后台都对应一个 Google Cloud 项目。
- 一个 Firebase 项目可以包含多个应用(Android、iOS、Web)。
在项目中,您需要使用具体 Android 应用的 application ID(包名)注册该应用,例如 com.coddykit.demo。Firebase 通过这个 ID 确定请求来自哪个应用。
google-services.json 文件
注册 Android 应用后,Firebase 会生成一个名为 google-services.json 的配置文件。
下载该文件,并将其放入应用模块的根目录(与 build.gradle.kts 位于同一目录,也就是 app/ 目录内)。
这个 JSON 文件包含您的项目 ID、API 密钥和应用注册信息。构建工具会自动读取它——您几乎不需要手动打开它。
// File location in your project:
// app/google-services.json
// It is generated for you and looks roughly like:
{
"project_info": {
"project_id": "my-demo-app",
"storage_bucket": "my-demo-app.appspot.com"
},
"client": [
{ "client_info": { "mobilesdk_app_id": "1:1234567890:android:abc123" } }
]
}添加 Google Services 插件
要让 Gradle 读取 google-services.json,请添加 Google Services Gradle 插件。
现代做法是使用带版本目录的 plugins 块。您可以在根构建文件中声明插件(使用 apply false),然后在模块构建文件中应用它。
// Root build.gradle.kts (project level)
plugins {
id("com.android.application") version "8.5.0" apply false
id("org.jetbrains.kotlin.android") version "2.0.0" apply false
id("com.google.gms.google-services") version "4.4.2" apply false
}在模块中应用插件
在应用模块的 build.gradle.kts 中应用该插件,使其在构建期间处理配置文件。
如果缺少这一行,即使其他设置都正确,Firebase 初始化也会在运行时失败。
// app/build.gradle.kts (module level)
plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
id("com.google.gms.google-services")
}Firebase BoM
Firebase 包含许多库(Auth、Firestore、Messaging、Analytics……)。使用 物料清单(BoM) 可以轻松保持它们的版本同步。
您只需声明一次 BoM,然后添加每个 Firebase 依赖项,且无需指定版本——BoM 会为您选择兼容的版本。
// app/build.gradle.kts -> dependencies { }
dependencies {
// One BoM controls all Firebase versions
implementation(platform("com.google.firebase:firebase-bom:33.1.0"))
// No version numbers here - the BoM decides
implementation("com.google.firebase:firebase-auth")
implementation("com.google.firebase:firebase-firestore")
implementation("com.google.firebase:firebase-messaging")
}自动初始化
您可能会以为需要在 Application 类中调用类似 Firebase.initialize() 的方法。但在现代 SDK 中,通常不需要这样做。
Google Services 插件会自动生成一个初始化提供程序,在应用启动时使用 google-services.json 运行。等到您的 Activity 启动时,Firebase 已经准备就绪。
// You normally do NOT need this anymore:
// FirebaseApp.initializeApp(context)
// Firebase is initialized automatically on app launch.
// You can just start using a service:
import com.google.firebase.Firebase
import com.google.firebase.firestore.firestore
val db = Firebase.firestore // ready to useKotlin KTX 风格
Firebase 通过 Firebase 对象提供符合 Kotlin 惯用写法的Kotlin访问器。您不必写 FirebaseFirestore.getInstance(),而是可以写 Firebase.firestore。
这些扩展的可读性更好,也是现代 Android 代码推荐的写法。
import com.google.firebase.Firebase
import com.google.firebase.auth.auth
import com.google.firebase.firestore.firestore
import com.google.firebase.messaging.messaging
val auth = Firebase.auth // FirebaseAuth
val db = Firebase.firestore // FirebaseFirestore
val fcm = Firebase.messaging // FirebaseMessaging
// Equivalent old style:
// val auth = FirebaseAuth.getInstance()添加互联网权限
Firebase 需要与 Google 的服务器通信,因此您的应用需要网络访问权限。请在清单文件中声明 INTERNET 权限。
这是一个普通权限,安装时会自动授予,无需在运行时请求。
<!-- AndroidManifest.xml -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.INTERNET" />
<application ... >
<!-- activities, services -->
</application>
</manifest>验证连接
确认设置是否成功的一种快捷方法是读取某个值,或检查当前 Firebase 应用。如果 Firebase 尚未初始化,访问服务时就会抛出异常。
许多开发者还会暂时添加 Analytics 依赖,然后在控制台中查找事件,作为基本测试。不过,在代码中直接访问某项服务,就已经足以证明接入配置正确。
import android.util.Log
import com.google.firebase.Firebase
import com.google.firebase.firestore.firestore
fun verifyFirebase() {
val app = Firebase.firestore.app
Log.d("Firebase", "Connected to project: ${app.options.projectId}")
}常见设置错误
如果 Firebase 无法正常工作,请先检查以下项目:
- 包名错误 — 应用的 applicationId 必须与注册时填写的内容一致。
- 缺少 google-services.json — 它必须位于
app/文件夹中。 - 忘记在模块构建文件中应用插件。
- 清单中没有 INTERNET 权限。
- 未添加 SHA-1 指纹 — 之后使用 Google 登录时需要添加。
快速检查
google-services.json 文件有什么作用?
回顾:设置完成
您已将 Android 应用连接到 Firebase。关键步骤如下:
- 在 Firebase 控制台中创建项目,并通过包名注册应用。
- 将
google-services.json添加到app/文件夹。 - 应用 Google Services 插件,并添加 Firebase BoM 以及所需的库。
- Firebase 会自动初始化——通过
Firebase.auth、Firebase.firestore等访问服务。 - 不要忘记 INTERNET 权限。
接下来:使用 Firebase Authentication 登录用户。
常见问题解答
「设置 Firebase」课时是免费的吗?
是的 — 「设置 Firebase」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Android Academy 课程的其余内容,请升级到 CoddyKit PRO。 Android Academy 课程共包含 4 节课。
「设置 Firebase」这节课中我会学到什么?
将您的应用连接到 Firebase 项目 你通过在浏览器中直接运行的动手代码来练习 Android Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Android Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Android Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「设置 Firebase」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Android Academy 课中编写并运行代码吗?
能。每节 Android Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。