返回项目目录
开源平台精选项目

Firebase

Google 提供的应用开发平台,拥有开源客户端 SDK 与托管后端服务。

主要语言TypeScript
开源许可Apache-2.0 / BSD-3-Clause(SDK)
项目类型开源平台
维护状态活跃维护
OVERVIEW

项目概述

Firebase 为 Web 和移动应用提供认证、数据库、文件存储、Functions、Hosting、消息推送、质量监控和本地 Emulator;其 SDK 开源,但完整托管平台并非可自托管的开源后端。

Firebase 是 Google 提供的应用开发平台,覆盖从客户端数据与身份到后端计算、托管、消息推送和应用质量的完整生命周期。Web 应用可使用模块化 JavaScript SDK 连接 Authentication、Cloud Firestore、Realtime Database、Cloud Storage、Cloud Functions、Cloud Messaging、Remote Config、App Check、Firebase AI Logic 和 SQL Connect 等产品。需要准确区分开源边界:Firebase JavaScript SDK 主要采用 Apache-2.0,部分 Protobuf 代码采用 BSD-3-Clause;但 Firebase 的完整云端服务、控制台和基础设施不是一个可下载、自托管的开源后端。

Web SDKfirebase v12.16.0
Firebase CLIv15.24.0
开源边界SDK / 工具开源,托管平台非整体开源
FEATURES

主要特点

Firebase 将常见应用后端、发布和质量工具整合到 Google Cloud 项目中,并为客户端提供一致的跨平台 SDK。

01

Authentication

支持邮箱密码、匿名账号、手机号和多种 OAuth/OIDC/SAML 身份提供商,并通过客户端 SDK 管理登录状态与 Token。

02

Cloud Firestore 与 Realtime Database

Firestore 提供文档模型、查询、实时监听和离线能力;Realtime Database 以 JSON 树和低延迟同步服务实时场景。

03

Cloud Storage 与 Functions

Cloud Storage 保存用户文件,Cloud Functions 响应 HTTP、数据库、认证和其他事件,为客户端应用补充可信服务端逻辑。

04

Hosting 与 App Hosting

Hosting 适合静态资源、SPA 和边缘缓存;App Hosting 面向动态 Web 框架,并与 GitHub 和 Google Cloud 运行环境集成。

05

Security Rules 与 App Check

Rules 在 Firestore、Realtime Database 和 Storage 请求层执行授权与数据约束;App Check 帮助阻止未经验证的客户端滥用后端资源。

06

Local Emulator Suite

可在本地模拟 Authentication、Firestore、Realtime Database、Storage、Functions、Hosting 等服务,并测试 Rules 与跨服务流程。

07

消息、配置与应用质量

Cloud Messaging、Remote Config、Crashlytics、Performance Monitoring、App Distribution 和 Test Lab 覆盖运营、监控与测试。

08

Google Cloud 集成

Firebase 项目本质上关联 Google Cloud 项目,可结合 IAM、Cloud Logging、BigQuery、Cloud Run 和其他云服务扩展架构。

USE CASES

适用场景

适合需要快速交付 Web 或移动应用、重视实时数据和移动生态,并接受 Google 托管服务与计费模型的团队。

实时 Web 与移动应用

为聊天、协作、直播互动、状态面板等场景提供客户端订阅、离线缓存和实时数据同步。

移动应用后端

组合登录、推送、Crashlytics、Remote Config、App Distribution 和 Test Lab,覆盖移动产品开发与运营。

快速 MVP

在较少自建服务的情况下完成身份、数据、文件、托管和 Serverless Function,快速验证产品需求。

用户生成内容

使用 Authentication、Firestore、Storage 和 Rules 管理用户资料、帖子、评论、图片和访问权限。

Serverless Web 应用

通过 Hosting 或 App Hosting 发布前端,以 Functions 和 Google Cloud 服务处理可信业务逻辑与异步事件。

功能实验与质量监控

结合 Remote Config、Analytics、Crashlytics 和 Performance Monitoring 分批发布功能并观察稳定性。

EVALUATION

优点与注意事项

技术选型不仅要看能力,也要理解它带来的团队成本。

主要优点

Firebase 擅长的地方

  • Web、iOS、Android、Flutter、Unity 等客户端 SDK 覆盖广
  • 认证、实时数据、存储、Functions 和托管可快速组合
  • Firestore 实时监听和离线能力适合客户端优先应用
  • Emulator Suite 便于本地联调并自动测试 Security Rules
  • Crashlytics、Messaging、Remote Config 等移动工具集成成熟
  • 与 Google Cloud IAM、日志、分析和计算服务衔接自然

需要注意

采用前应考虑的问题

完整平台并非开源

开源 JavaScript SDK、Admin SDK 和部分工具不代表云端服务开源。Firebase 没有与官方托管平台完全等价的通用自托管发行版。

平台锁定需要提前评估

Security Rules、Firestore 查询、实时监听、Functions 触发器和客户端 API 都具有平台特征,迁移到其他后端通常需要改造数据与授权逻辑。

Security Rules 是关键边界

宽松规则可能直接暴露数据。规则必须与 Authentication 配合并持续测试;服务端 SDK 会绕过 Firestore Rules,需要另用 IAM 控制。

NoSQL 数据建模不同于关系数据库

Firestore 不提供传统 Join,复杂聚合和多实体事务需要重新设计、冗余数据或引入其他 Google Cloud 数据服务。

按操作计费可能难以直觉预测

文档读取、写入、删除、存储、带宽和 Functions 都可能产生费用。实时监听或低效查询会放大读取量,应设置预算告警并压测。

客户端配置不是秘密

apiKey、projectId 等 Web 配置用于定位项目,无法单独阻止滥用;必须部署 Rules、App Check、API 限制和配额保护。

Emulator 与生产环境并非完全一致

本地测试能覆盖主要逻辑,但不能替代对真实区域、IAM、网络、配额、冷启动和服务集成的预发布验证。

产品条款和 SLA 并不统一

Firebase 与底层 Google Cloud 产品可能具有不同定价、区域、配额、支持级别和服务条款,生产选型应逐项核对。

QUICK START

快速开始

创建 Firebase 项目并注册 Web App,使用模块化 SDK 初始化 Firestore 与 Authentication,再通过 Rules 和 Emulator 建立安全的本地开发流程。

1安装模块化 Web SDK
bash
npm install firebase

# 本地开发与部署工具
npm install --save-dev firebase-tools
2初始化 Firebase
typescript
import { initializeApp } from "firebase/app";
import { getAuth } from "firebase/auth";
import { getFirestore } from "firebase/firestore";

const firebaseConfig = {
  apiKey: import.meta.env.VITE_FIREBASE_API_KEY,
  authDomain: import.meta.env.VITE_FIREBASE_AUTH_DOMAIN,
  projectId: import.meta.env.VITE_FIREBASE_PROJECT_ID,
};

export const app = initializeApp(firebaseConfig);
export const auth = getAuth(app);
export const db = getFirestore(app);
3写入并实时监听数据
typescript
import {
  addDoc,
  collection,
  limit,
  onSnapshot,
  orderBy,
  query,
  serverTimestamp,
} from "firebase/firestore";

const posts = collection(db, "posts");

await addDoc(posts, {
  title: "Hello Firebase",
  authorId: auth.currentUser?.uid,
  createdAt: serverTimestamp(),
});

const latestPosts = query(
  posts,
  orderBy("createdAt", "desc"),
  limit(20),
);

const unsubscribe = onSnapshot(latestPosts, (snapshot) => {
  console.log(snapshot.docs.map((doc) => ({
    id: doc.id,
    ...doc.data(),
  })));
});

// 页面卸载时调用 unsubscribe()
4配置 Google 登录
typescript
import {
  GoogleAuthProvider,
  signInWithPopup,
  signOut,
} from "firebase/auth";

const provider = new GoogleAuthProvider();

export async function login() {
  return signInWithPopup(auth, provider);
}

export async function logout() {
  return signOut(auth);
}
5为用户数据编写 Rules
javascript
rules_version = '2';

service cloud.firestore {
  match /databases/{database}/documents {
    match /posts/{postId} {
      allow read: if true;
      allow create: if request.auth != null
        && request.resource.data.authorId == request.auth.uid;
      allow update, delete: if request.auth != null
        && resource.data.authorId == request.auth.uid;
    }
  }
}
6启动 Emulator 并部署 Rules
bash
npx firebase login
npx firebase init firestore emulators
npx firebase emulators:start

# 测试通过后再部署规则
npx firebase deploy --only firestore:rules

下一步:Firebase Web 配置对象会出现在客户端代码中,它不是安全边界。真正的访问控制必须依靠 Authentication、Security Rules、App Check 和服务端 IAM,并使用 Emulator 为未登录、越权和跨租户场景编写测试。

ALTERNATIVES

类似项目

这些平台同样提供数据库、认证、存储和 Functions,但在开源范围、自托管能力和底层数据库模型上差异明显。

COMPARISON

Firebase vs Supabase

Firebase 和 Supabase 都能为客户端快速提供数据库、认证、存储、实时能力与 Functions。Firebase 是 Google 托管的多产品平台,以 Firestore 文档数据库和移动生态见长;Supabase 以开源组件与 PostgreSQL 为核心,并提供自托管路径。

比较维度FirebaseSupabase
开源范围客户端 SDK 和部分工具开源,完整云平台非整体开源核心平台与主要组件开源,并提供自托管方案
主要数据库Cloud Firestore 文档数据库 / Realtime DatabasePostgreSQL 关系数据库
查询模型文档查询、实时监听、客户端离线同步SQL、Join、视图、函数、扩展和 Row Level Security
访问控制Firebase Authentication + Security Rules + IAMAuth + PostgreSQL RLS、角色与数据库权限
移动生态Messaging、Crashlytics、Remote Config、Test Lab 等完整工具后端数据能力突出,移动运营工具需要其他服务补充
本地开发Local Emulator Suite 模拟多项 Firebase 服务本地 Supabase Stack,可运行实际 PostgreSQL 等组件
云端扩展与 Google Cloud Functions、Run、BigQuery 和 IAM 集成与 PostgreSQL 生态、Edge Functions 和外部云服务集成
更适合客户端实时体验、移动产品和 Google Cloud 团队关系数据、SQL 控制、开源与可迁移性优先的团队
如何选择

如果应用以移动端、实时客户端同步、推送和应用质量工具为核心,并希望深度使用 Google Cloud,Firebase 的一体化体验更成熟;如果业务依赖关系数据、复杂 SQL、数据库级权限,并重视开源和自托管选择,Supabase 通常更自然。选型前应使用真实查询、权限规则、离线行为、峰值读取量和迁移方案做原型验证。

VERIFICATION

资料核验

版本、维护信息与本页采用的官方资料来源。

最后核验2026 年 7 月 28 日
核验版本Firebase JS SDK v12.16.0 / CLI v15.24.0
内容维护Docs100 编辑整理
项目维护状态活跃维护

本页依据 Firebase Web Setup、产品文档、Security Rules、App Check、Emulator 与 JavaScript SDK 仓库整理。SDK 和 CLI 版本通过 npm Registry 核验;开源许可证说明依据 firebase-js-sdk 官方 LICENSE,且未把托管平台误标为整体开源。

维护状态核验2026 年 7 月 26 日 · 最近可见代码活动:2026 年 7 月 27 日

官方仓库未归档,核验时最近可见的代码活动日期为 2026 年 7 月 27 日。该状态表示项目近期仍有公开维护活动,不代表固定发布频率或长期支持承诺。

查看官方仓库