Oi Luciano, tudo bem?
Desculpa a demora em retornar.
Fico feliz em saber que você conseguiu resolver o erro. Parece que o problema estava relacionado à declaração de nulos (null safety) e às atribuições de valores nas funções do seu código.
No exemplo que você forneceu, percebo que você fez as seguintes alterações para resolver o erro:
Na classe "Contact", você adicionou o operador "?" para tornar os atributos "id" e "account_number" nulos: final int? id;
e final int? account_number;
.
Na função "save", você removeu a linha que atribuía o valor de "id" ao mapa "contactMap": contactMap['id'] = contact.id;
.
Na função "save", você não tinha atribuído o valor de "account_number" ao mapa "contactMap". É importante adicionar essa atribuição para garantir que o valor seja salvo corretamente.
Essas alterações são importantes para lidar com o null safety e evitar erros de tipo durante a execução do código. Ao adicionar o operador "?" na declaração das variáveis, você está permitindo que elas possam ser nulas.
No caso da linha removida que atribuía o valor de "id" ao mapa "contactMap", pode ser que o valor já esteja sendo adicionado em outro lugar do código ou que não seja necessário para a operação que está sendo realizada.
Certifique-se de que todas as atribuições necessárias estejam corretas e de acordo com a estrutura do banco de dados e as necessidades da sua aplicação.
Espero que isso ajude a esclarecer o que estava acontecendo.
Um abraço e bons estudos.