FlutterとFreezed、Firebaseについてです。
私はBクラスとCクラスをFreezedで作りました。BとCは多くの共通したフィールドを持っています。
いま、Bクラスだけで使用している関数(引数にB型を要求している)をCクラスでも使用したくなったため、スーパークラスAを作りB、Cをそのサブクラスにしようとしています。
Freezedはextends, implementsに対応しておらずfactoryを使用することになっているため、AクラスのfactoryでBクラスとCクラスを作るという形になりました。
しかし、そのクラスをFirebaseに書き出してみるとセキュリティルールで弾かれ、確認するとruntimeTypeというフィールドが勝手に追加されていることがわかりました。
ドキュメントに余計なフィールドを持たせたくないのですが、FreezedのReadMeによると、Freezedは複数のコンストラクタを記述した場合runtimeTypeフィールドで実行時にどの型として扱うか判断しているようです。
では、AとB・Cに互換性を持たせつつruntimeTypeをドキュメントのフィールドに持たせないことは不可能なのでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。