vscode에서 flutter를 코딩중이던 어느날 갑자기 잘만 적용되던 코드가 위 사진 처럼 틀렸다고 나오기 시작한다.
9번째 줄에 아래와 같은 코드에서 key 를 설정 해줘야 한다는 것 같은 에러메세지가 뜬다.
User(this.id, this.pw, this.createTime);
Non-nullable instance field 'key' must be initialized.
Try adding an initializer expression, or add a field initializer in this constructor, or mark it 'late'.
firebase_database 패키지도 분명 쓰고는 있는데 위 처럼 뭔가 안쓰고 있다고 나온다.
당장 뭔가 되어야 하는 코딩 개초보인 나에게 위 문제를 검색해봐도 뭐가 문제인지 알 수가 없었다..
여러번의 삽질 끝에
pubspec.ymal 파일에 enviroment가 기본적으로 sdk: ">=2.12.0 <3.0.0" 로 변경되어 생성이 되어있었다.
enviroment를 sdk: ">=2.7.0 <3.0.0" 로 변경해준뒤에야 코드가 적용이 되었다.
조금 찾아보니 Flutter 가 2.0으로 버전 업을 하면서 null safty가 되었다고 하는데,
null safty를 적용하기 위해서는 위에서 나온 sdk: ">=2.7.0 <3.0.0" 를 sdk: ">=2.12.0 <3.0.0" 로 바꿔줘야 된다고 한다.
아마 dart가 버전업이 자동으로 되면서 약간 문법적으로 엄격해진게 아닐까 하고 생각한다.