Pessoal, boa noite.
Eu tenho um app em produção, para quem deseja conhecer (https://play.google.com/store/apps/details?id=br.com.site10consultoria.bettao) e preciso adicionar uma nova coluna no modelo:
import 'package:cloud_firestore/cloud_firestore.dart';
class ActivityModel{
String id;
Timestamp activityDate;
String title;
String userId;
String itemId;
String item;
String? description;
String? shopId;
String? videoLink;
List<String>? images;
ActivityModel({
required this.id,
required this.activityDate,
required this.title,
required this.userId,
required this.itemId,
required this.item,
this.description,
this.shopId,
this.videoLink,
this.images,
});
ActivityModel.fromMap(Map<String, dynamic> map):
id = map["id"],
activityDate = map["activityDate"],
title = map["title"],
userId = map["userId"],
itemId = map["itemId"],
item = map["item"],
description = map["description"],
shopId = map["shopId"],
videoLink = map["videoLink"];
Map<String, dynamic> toMap(){
return {
"id": id,
"activityDate": activityDate,
"title": title,
"userId": userId,
"itemId": itemId,
"item": item,
"description": description,
"shopId": shopId,
"videoLink": videoLink,
};
}
}
Para ler os dados e utilizar no app eu uso a função abaixo:
loadData() {
if (widget.activity != null) {
_idController.text = widget.activity!['id'];
_titleController.text = widget.activity!['title'];
activityDate = widget.activity!['activityDate'].toDate();
_itemIdController.text = widget.activity!['itemId'];
if (widget.activity!['description'] != null) {
_descriptionController.text = widget.activity!['description'];
}
}
}
Só que quando adiciono um novo campo tipo String description2, buga tudo. O app já está em produção, então qualquer alteracão trava todos os usuários.
Tem alguma forma de tratar isso?
Colocar dentro de algum try/catch?