FLUTTER Firestore Создает новый документ, когда слияние используется для обновления поля - PullRequest
1 голос
/ 28 мая 2020

Я пытаюсь обновить поле в документе, используя merge:true. он не может обновить документ не только потому, что я создаю дубликат документа с тем же идентификатором документа, только с обновленным полем Код

    await Firestore.instance
    .collection('QuizProfile')
    .document(id)
    .setData({
  'Score': ['asdfg'],
}, merge: true);
}

добавляя сюда снимок экрана

Original Document created initially

Duplicate document created after using setData with merge:true

1 Ответ

1 голос
/ 28 мая 2020

setData с merge:true обновит поля в документе или создаст его, если он не существует, в то время как updateData обновит поля, но завершится ошибкой, если документ не существует

Если id равен идентификатору исходного документа в firestore, вы можете использовать updateData:

   await Firestore.instance
    .collection('QuizProfile')
    .document(id)
    .updateData({
  'Score': ['asdfg'],
});
}
...