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
相关产品推荐
相关产品推荐

