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

Flutter中如何从Firebase获取字段名及对应值并存储到数组?

从Firestore获取字段名及对应值并存入数组

你需要从Firebase Firestore的payments集合中当前用户的文档里,获取total payment的字段名和对应值并存入数组,当前代码仅能拿到字段值,可按以下方式修改实现需求:

修改后的代码

// 先在状态类中定义存储字段名和值的数组变量
List<List<dynamic>> paymentFieldArray = [];

Future _getDataFromDatabase() async {
  DocumentSnapshot snapshot = await FirebaseFirestore.instance
      .collection("payments")
      .doc(FirebaseAuth.instance.currentUser!.uid)
      .get();
  
  if (snapshot.exists) {
    Map<String, dynamic> docData = snapshot.data() as Map<String, dynamic>;
    setState(() {
      totalPayments = docData["total payment"].toString();
      balance = docData["remaining balance"].toString();
      // 将字段名和对应值存入数组,格式为 [字段名, 字段值]
      paymentFieldArray = [["total payment", totalPayments]];
      // 打印验证结果
      print(paymentFieldArray);
    });
  }
}

批量处理多字段的扩展写法

如果后续需要获取多个字段的名和值,可遍历文档的所有字段条目:

// 定义存储结构为 {字段名: 字段值} 的数组
List<Map<String, String>> allFieldData = [];

// 在snapshot.exists的判断内添加:
allFieldData = docData.entries.map((entry) {
  return {entry.key: entry.value.toString()};
}).toList();

补充说明

你的Firestore数据结构为:payments集合下以用户UID命名的文档中,包含total payment、remaining balance等字段,字段值为数值类型。通过上述代码,可直接指定目标字段名,将其与对应值组合后存入数组,或批量处理所有字段数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 08:15:54