用途:指导在 Flutter 应用中实现 Firebase Realtime Database,覆盖数据建模、查询、实时同步、离线支持与安全规则。适合简单数据模型、低延迟同步或在线状态(presence)功能;若需要复杂查询、高可扩展性与高可用性的丰富数据模型,应改用 Cloud Firestore。
主要能力:数据库选型建议;安装与初始化(flutter pub add firebase_database,import 'package:firebase_database/firebase_database.dart',FirebaseDatabase.instance.ref());启用离线持久化(setPersistenceEnabled(true)、setPersistenceCacheSizeBytes);扁平化 JSON 树结构设计、push ID、反规范化;索引与查询(.indexOn、orderByChild/orderByKey/orderByValue、limitToFirst/limitToLast、startAt/endAt/equalTo);读写操作(get、onValue 监听、set、update、runTransaction、多路径原子更新);扩展设计(约 20 万并发连接、每秒 1000 次写入,超出需分片);离线与在线状态(.info/connected、onDisconnect);安全规则(.read/.write/.validate/.indexOn、auth 变量、规则级联)。
使用方式:先完成 Firebase.initializeApp() 再访问 FirebaseDatabase.instance;在任何读写前设置持久化;用 .indexOn 索引常用查询字段;实时更新用监听器而非轮询;单次写入保持在 256KB 以下;用 ServerValue.timestamp 记录时间;用 Firebase 控制台规则模拟器或 Emulator Suite 测试规则。
限制:查询只能排序或过滤其一,不能同时;查询默认深度返回整个子树;最大嵌套 32 层;自定义键须 UTF-8 编码、不超过 768 字节,且不能含 . $ # [ ] / 或 ASCII 控制字符;不支持 join;读写规则级联,父规则授权无法被子规则撤销;大文件应使用 Firebase Storage。