You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Firebase实时数据库的Drivers节点查询代码转换为Cloud Firestore代码

实时数据库转Cloud Firestore正确实现代码

原有尝试代码的问题

  • 错误查询了earnings子集合,原逻辑是直接读取drivers集合下对应用户UID的单个文档,无需访问子集合
  • 直接将查询结果转为字符串不符合需求,需要复用模型类做结构化解析
  • 未正确判断Firestore文档是否存在,Firestore的查询返回的快照需要用exists属性判断是否有有效数据

正确转换代码

1. 初始化Firestore集合引用

CollectionReference driversRef = FirebaseFirestore.instance.collection('drivers');

2. 数据查询逻辑

driversRef
    .doc(currentfirebaseUser!.uid)
    .get()
    .then((DocumentSnapshot documentSnapshot) {
      if (documentSnapshot.exists) {
        // 只需适配Firestore的快照结构修改Drivers.fromSnapshot方法即可
        driversInformation = Drivers.fromSnapshot(documentSnapshot);
      }
    });

模型类适配说明

你需要调整原来的Drivers.fromSnapshot构造方法,适配Firestore的DocumentSnapshot结构,参考示例:

class Drivers {
  // 原有属性定义保持不变,比如id、name、phone、car_number等
  String? id;
  String? name;
  // 其他属性...

  Drivers.fromSnapshot(DocumentSnapshot snapshot) {
    id = snapshot.id;
    Map<String, dynamic> data = snapshot.data() as Map<String, dynamic>;
    name = data['name'];
    // 其他属性赋值逻辑和原来保持一致,从data中取对应字段即可
  }
}

内容的提问来源于stack exchange,提问作者Sibusiso Mahlangu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 08:45:01