редактирование документа и поля в firebase

# #firebase #flutter #dart #google-cloud-firestore

Вопрос:

я работаю над firebase и пытаюсь обновить имя документа и имя его поля вместе, как показано на рисунке. я хочу, чтобы они обновлялись вместе.

введите описание изображения здесь

я использовал этот код

     EditCourse(String cName, String newName) async {
  var collection = FirebaseFirestore.instance.collection("Courses")
    ..where("Course name", isEqualTo: cName);
  collection.doc(cName).update({'Course name': newName});
}
 

Ответ №1:

Ответ: На данный момент Firebase не позволяет обновлять идентификаторы документов)

Предложение: вы должны использовать реляционные идентификаторы или случайные идентификаторы (реляционные идентификаторы означают, что, если у вас есть любимая коллекция продавца, вы можете присвоить идентификаторы документов идентификаторам фильмов / продуктов)

Ответ №2:

Невозможно обновить идентификатор существующего документа. Если вам необходимо поддерживать вариант использования с изменением названий курсов, рассмотрите возможность использования встроенной функции генерации идентификаторов Firestore при добавлении ваших документов (поэтому добавляйте документы с помощью add() метода).

Если вы будете придерживаться своей текущей модели, вам придется:

  1. Прочитайте существующий документ.
  2. Введите дату под новым идентификатором.
  3. Удалите исходный документ.

Учитывая тип операции, вы, вероятно, захотите использовать для этого транзакцию.