[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(),

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

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

イチオシ

40代から感じるモヤモヤを解消できる 無料動画セミナー

あすコロ式・40代からの人生アップデート【新】戦略

アラフォーでキャリアを失ったバリバリ左脳人間・スピリチュアル耐性ゼロの元金融マンが、人生どん底から立ち上がる過程でたどり着いた「人生再構築メソッド」。40代・50代を過ぎて多くの人が感じる「このままでいいんかな?」「この先どうしたらいいかわからない」というモヤモヤを解消し、人生後半戦をアップデートさせる【新】戦略。

今すぐ無料で動画セミナー(80分)を見る ▶

TOP