0Pricing
Android Academy · 课时

设置 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 use

Kotlin 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 反馈 — 无需本地设置。

此课程中的所有课时

  1. 设置 Firebase
  2. Firebase 身份验证
  3. Cloud Firestore 基础
  4. 使用 Cloud Messaging 推送
← 返回 Android Academy