[Flutter]「Dart Data Class Plugin」でDateTime型を扱う場合の注意点

このページには広告が含まれる場合があります。

 

(List型を扱う場合の注意点はこちら)

 

データクラスとしてあったら便利なメソッド群(copyWith・fromJson・toJsonなど)を、コマンド一発で自動生成してくれる「Dart Data Class Plugin」という、Android Studio付属の非常に便利なプラグイン(≠パッケージ)があります。

これを使って、DateTime型を変換させると、「fromMap」メソッド及び「toMap」メソッドはこのような感じになりますが、

そのままの状態で、CloudFirestoreデータベース等での読み書きを実行すると、

‘String’ is not a subtype of type ‘DateTime’ in type cast

というエラーが出て、うまくいかないことがあります。

その場合は、

fromMapメソッドの

postDateTime: map['postDateTime'] as DateTime

の箇所を、DateTime.parseメソッドを使って、一旦String型に型変換したものを解析し、

postDateTime: DateTime.parse(map['postDateTime'] as String)

toMapメソッドの

'postDateTime': this.postDateTime

の箇所を、DateTime#toIso8601Stringメソッドを使って、表記フォーマットをISO形式に変換してやるとうまくいきます。

'postDateTime': this.postDateTime.toIso8601String(),

(詳しくは、以下の動画で解説していますので、よろしければご覧ください)

こんな記事も読まれています

人気No.1

前向きな気持ちになれる 占星術・タロットリーディング

あすコロ式・相談サロン 【ナビるやん】

人に言えない悩みから使命・運勢診断まで、あなたに寄り添いながら“ナビゲート”する、あすコロ人気No.1のオンライン相談サロン。占星術・心理学・タロットの叡智を活かし、普段認識していない「潜在意識」にアクセスしてあなたの気づいていない可能性を拓かせ、明日から前向きに歩めるようになる60分のリーディングセッション。

今すぐ詳細を見る(メルマガ登録で初回半額) ▶

TOP