pj-picbook / picbook

9 stars 0 forks source link

エラー対応 #113

Closed karokita closed 2 years ago

karokita commented 2 years ago

概要

要件

Ta23ka98 commented 2 years ago

@tokku5552 Crashlyticsのドキュメントを一通り理解したと思うので、認識をすり合わせておきたいです🙋 (手始めにテストクラッシュを意図的に発生させ、Firebaseコンソールで確認も出来ました)

Crashlyticsによって... ・Flutter内、外、あるいは特定のゾーンで発生したエラーを報告する ・カスタムキー、カスタムログ設定によって、エラーの詳細がわかるようにする こんな感じでしょうか🤔

あとiOSとAndroid向けのセットアップ(?)について、人が読める形式のクラッシュレポートを取得するが必要そうです。 Firebase CLIについて詳しくないのですが、とりあえず #46 を参考にセットアップを進めようと思います。

tokku5552 commented 2 years ago

@tokku5552 とりあえず組み込んでおくだけでいいかなと思います!それよりもAuthenticationのエラーハンドリングの方が緊急度としては高いかなと思います 🤔

もちろんさくっと出来そうならそこまでやっていただいたほうがありがたいです 🙏

Ta23ka98 commented 2 years ago

@tokku5552 了解です! とりあえず、先にAuthenticationの方に取り掛かりたいと思います🙋

Ta23ka98 commented 2 years ago

@karokita Authのエラーハンドリングについて、2点ほど確認したいです🙋

①対応するエラーは、スプレッドシートのエラーのみ? ②Authエラーの表示方法 ・UIにTextウィジェットを追加し、そこで表示する?(ログイン画面、会員登録画面など) ・あるいはSnackBarなどで表示する?

特に決まりがなければ、Textウィジェットで対応しようと思います🤔

karokita commented 2 years ago

@Ta23ka98 はい!

①スプレッドシートの対応エラーとかいたタブのみで大丈夫です。 ②SnackBar表示でお願いします🙏

Ta23ka98 commented 2 years ago

@tokku5552 色々とやり方を模索してみましたが、AuthのエラーハンドリングとsnackBar表示を両立させる方法が分かりませんでした... 何か良い方法があればアドバイスをお願いしたいです🙇

質問ZoomにてAoiさんに「rethrowを使ってみては」とアドバイス頂いているので、今はひとまずそちらを試しています。

これまで試した方法としては... ①AuthExceptionでエラーが出たタイミングでsnackBarを表示してみる ・contextが上手く取得できず、失敗 (GlobalKeyもuseContextも上手くいかない)

②ref.listenとStateProvider、エラー発生時にstateをcopyWithする ・AuthRepositoryからはViewModelのstateは変更できないので失敗

*今は②をstateではなく、rethrowでViewModelにエラーを投げようと考えています

tokku5552 commented 2 years ago

どこかしらでExceptionをキャッチしてメッセージに書き変えてrethrowするのがいいと思います。 基本はAuthRepositoryかnotifierでメッセージに変換した後throwして、view側でcatchしてsnackbar表示になるかなと思います。 couple_todoでは https://github.com/flutteruniv/couple_todo/blob/main/lib/presentation/signup/signup_model.dart#L106 でエラーメッセージを変換して https://github.com/flutteruniv/couple_todo/blob/main/lib/presentation/signup/signup_page.dart#L90 ここでcatchしたものをsnackbarに表示しています。

Ta23ka98 commented 2 years ago

@tokku5552 ありがとうございます、参考にさせて頂きます🙌