pj-picbook / picbook

9 stars 0 forks source link

新規登録・ログイン機能の実装 #74

Closed pj-picbook closed 2 years ago

pj-picbook commented 2 years ago

概要

180789644-cb9bf263-9c85-46ff-9f7a-bb29227dbe61 180596002-d52e44a2-b153-416b-9330-7f533fb96f10

要件

※バラバラになってたタスクをこちらのissueに集約。

期限

親ストーリー

6

Ta23ka98 commented 2 years ago

@tokku5552 確認なのですが、現在は #46 でFirebaseのセットアップ中という考えで間違い無いでしょうか🤔 他にできることがあれば、ご教示お願いします🙇‍♀️

とりあえず僕としては、リポジトリを作ってhooks_riverpodなどの使い方を試しているところです。

tokku5552 commented 2 years ago

@Ta23ka98 いえfiresotreはもうアプリから使えるようになっていますし、https://github.com/pj-picbook/picbook/pull/67 のプルリクでは実際にfirestoreから値をとるコードをすでに記載してマージ済みです!

46 はセキュリティルールをこのリポジトリで管理したり、functionsを開発したりするようの設定なので、アプリの開発とは直接関係ないです!

Ta23ka98 commented 2 years ago

@tokku5552 了解です! とりあえず一通り勉強が終わったら、少しずつコミットしていきます🙋

Ta23ka98 commented 2 years ago

2点、疑問があります🙋

  1. 生年月日は必要か

    54 にて触れられていて、#13 にて議論中ですが...

    -必要ならDatePickerを実装 -不要なら削除 したいと思います。 (あとFirebaseAuthを使った新規登録も)

  2. ログアウト機能はどのページに実装するか 確認不足なだけかもですが、他のページへの実装は大丈夫でしょうか🤔 ないと色々困ると思うので、完成後はとりあえずボトムナビゲーションにFABを置いて、そこに実装しようと思っていますが...

karokita commented 2 years ago

@Ta23ka98 1.生年月日は最終的には必要です!絵本は対象年齢というものがありまして、レコメンドに関わってくるので必要になってきます。ただし、実装が難しいなどの場合は、生年月日は初期対応しない、というはあるかなと思ってます。 (こんな感じで、絵本には対象年齢があるのです → https://www.fukuinkan.co.jp/bookguide/#osusume

2.ログアウトはマイページに実装予定です

13

スクリーンショット 2022-07-23 17 21 50

Ta23ka98 commented 2 years ago

@tokku5552 user.dartにpasswordという値を追加したいです。 この場合、

スクリーンショット 2022-08-07 22 50 02
tokku5552 commented 2 years ago

@Ta23ka98 フィールドの追加方法という意味では user.freezed.datrファイルとuser.g.dartファイルを削除 この作業はいらないです。自動で削除されます!

ただ、Userエンティティはfirestoreのusersコレクションに入れる値だけを保持しておきたいので、passwordは追加しないでほしいです!Authenticationはその場でfirebaseに送るだけで、firestore側で永続化しない想定です!そうでないならauthentication使う意味があまりないので 🤔

Ta23ka98 commented 2 years ago

@tokku5552 ありがとうございます、了解です🙋

passwordの追加は不要

よく考えたらそうでした! コントローラーの実装の流れで、勘違いしていました😅

Authenticationはその場でfirebaseに送るだけで、firestore側で永続化しない想定

ここの理解が浅く、コントローラーの引数の書き方が合っているか悩んでいます🤔 具体的に悩みとは、

基本的にはganさんの記事のように実装するつもりですが、Riverpodやアーキテクチャなどでちょっと混乱している状態です。

お手数ですが、よろしくお願いします🙇

スクリーンショット 2022-08-07 23 41 49

因みにこれまでの作業の流れとしては...

  1. mypage_notifier.dartと同じように、signup_page_notifier.dartを作る
  2. mypage.dartと同じように、SignUpPageをHookConsumerWidgetにする
  3. コントローラーの引数をこちらと同じでよいか悩む

といった感じです。 (理解中とはいえコピペが多いので、ちょっと自信がない感じです😅)

tokku5552 commented 2 years ago

@Ta23ka98 コントローラーと言っているのはXXXNotiifierのことで良いですかね?

コントローラの引数(ユーザ名など)はtext: state.nameでOK?

この部分が少し切り分けが必要で、状態を読むのか、状態を更新するのかで、stateからとってくるかnotifier.xxxというメソッドを呼ぶのかが変わります。 ちなみに useTextEditingControllerをインスタンス化するときの引数はあくまで初期値なので、最初に表示しておきたい値を入れておけば良いと思います!

これhttps://github.com/pj-picbook/picbook/pull/80/files/8a17d1ffa996c9fa0cb05ef303d217d73d0e1f1d#diff-cd22b11e8ac794466d51d0fc8f01254035a0f3b00dfe1c3126a52f839ddf107e のlib/state/searched_book.dartのように、stateを宣言したほうが良いかもです 🤔

tokku5552 commented 2 years ago

@Ta23ka98 結構空中戦になりそうなので、よければ一旦DraftでPR作ってみてもらっても良いでしょうか?そうすると私からもいま @Ta23ka98 さんがどう実装しようとしているのかが見えるので 👍

Ta23ka98 commented 2 years ago

@tokku5552 なるほど、ありがとうございます!

ちなみに useTextEditingControllerをインスタンス化するときの引数はあくまで初期値なので、最初に表示しておきたい値を入れておけば良いと思います!

こちらと記事を参考にしつつ、やってみようと思います👍