firestore の rule のテストは難しくないからみんな書こう(rule はむずい)

firestore の rule のテスト方法について書きたいと思います.

firestore に限らず firebase のサービスの rule はセキュリティを確保するために非常に重要ですが、独特の書き方と概念なのでちゃんと書くのは結構難しいです。 また、条件が増えてくると手作業でテストするのも現実ではありません。

そこで今回は @firebase/rules-unit-testing を使ったテスト方法について紹介したいと思います。内容的には以下の公式ドキュメントほぼそのままですが細かい導入方法などが欠けているのでそのあたりを補足したいと思います。

単体テストを作成する  |  Firebase

続きを読む

タブ切り替え時でもListViewのスクロール位置を保持したい

こんにちは、 id:numanuma08 です 🍛

flutterでタブを含むUIを実装しているとき、タブ中に配置したScrollViewやListViewのスクロール位置がタブを変更したタイミングでリセットされる現象は有名な現象だと思います。少しググるだけで解決策は出てきますが、最もスマートかつflutterが公式に推奨している方法はPageStorageを使う方法です。

api.flutter.dev

実装方法も簡単でScrollViewやListViewのコンストラクターで一意のPageStorageKeyを与えるだけです。この記事ではなぜPageStorageKeyを設定するとスクロール位置が保持されるのかflutterのソースコードを調査して明らかにします。

続きを読む