全书目录

第四十七篇:Firebase 完全指南 —— 云端托管商圈宇宙

第七章:Realtime 与离线 —— 商圈广播和本地备用账本,才是 Firebase 体验顺的核心

2 分钟 571 字 第 874 / 962 个阅读单元

很多人只记得 Firebase “能存数据”,但真正让它体验有辨识度的,是:

  • 实时同步
  • 离线支持

#1. Firestore 的实时监听

前面已经看到 onSnapshot()

它本质上就是:

你订阅某块账本,一旦有变化,商圈广播系统主动推给你。

这和传统 REST 轮询完全不是一个心智。

传统做法像:

text
柜台每隔 5 秒问一次:
"有新订单吗?"
"有新订单吗?"
"有新订单吗?"

Firebase 更像:

text
账本一改
广播系统立刻喊:
"3 号柜台,你关心的订单变了"

#2. Firestore 离线支持

官方文档明确说,Cloud Firestore 支持离线持久化。 设备离线时,应用仍然可以:

  • 读缓存
  • 写本地更改
  • 继续监听
  • 恢复联网后再同步回云端

一个 Web 端持久化配置示意:

ts
import { initializeApp } from "firebase/app";
import {
  initializeFirestore,
  persistentLocalCache,
  persistentSingleTabManager
} from "firebase/firestore";

const app = initializeApp(firebaseConfig);

const db = initializeFirestore(app, {
  localCache: persistentLocalCache({
    tabManager: persistentSingleTabManager()
  })
});

这件事很重要,因为它意味着:

你的店员进地下车库没网了,账本不至于瞬间全失效。

#3. Realtime Database 仍然存在

这里要讲清楚一个常见混淆:

Firebase 不只有 Firestore,还有 Realtime Database

Realtime Database 更像:

更直接的商圈广播树。

  • JSON 树结构
  • 同步很直接
  • 老牌 Firebase 核心能力之一
  • 离线和实时性也很强

但到 2026 的主流新项目语境里,Firestore 通常是更优先被推荐的默认主路径,因为它在:

  • 数据模型
  • 查询能力
  • 可扩展性
  • 多数现代产品场景

上通常更均衡。

所以你可以这样记:

text
Firestore
= 现代主账本 + 实时广播 + 离线缓存

Realtime Database
= 更老牌、更直接的实时广播树