首页 > 解决方案 > 添加到 Firebase 且未正确更新的附加字段

问题描述

每次我回答评估的第一个问题时,我都会添加一个空字符串(作为选项)以及选择的选项,但我不确定这是从哪里来的。此外,当 Firebase 更新时,如果该字符串与另一个字符串匹配,例如为多个问题选择了“是”,它只会在 Firebase 中第一次出现。我更希望显示选项编号而不是选项字符串,因此它显示“option1”而不是“是的,完全”。我将如何解决这些问题?

理想情况下,我想用问题更新 Firebase,并在其下方为该问题选择了哪个选项编号。

在此处输入图像描述

Future<void> update(Map data) {
    return ref.setData(Map<String, dynamic>.from(data), merge: true);
  }


Future<void> update(Map data) async {
    FirebaseUser user = await _auth.currentUser();
    Document<T> ref = Document(path:  '$collection/${user.uid}');
    return ref.update(data);
  }


Future<void> _updateUserReportWithQuestion(Questions questions, Options optionSelected) {
  return Global.reportRef.update(
    ({
      'questions': {
      'questions': FieldValue.arrayUnion([questions.text]),
      'options': FieldValue.arrayUnion([
        optionSelected.option1, 
        optionSelected.option2, 
        optionSelected.option3, 
        optionSelected.option4, 
        optionSelected.option5,
        ]),
      },
})

标签: firebasefluttergoogle-cloud-firestore

解决方案


推荐阅读