質問: Firebase初心者です。 SNSのようなiOSアプリで、ユーザアカウントを作成をしたいと思っています。 後々、webやandroid版も作成するかもしれません。 emailとpasswordのみAuthで保存し、他はFirestoreのuserドキュメントに、Authのuidをリファレンスにして保存しようと思っています。 画面としては、以下の2画面でアカウントを作成してもらう予定です 1. emailとpasswordを書いてもらい、決定ボタンでユーザを作成・ログイン後、遷移 2. ユーザ名を書いてもらい、決定ボタンでユーザ名を初期設定から更新して、サービスへ入場 そこで1画面目で行う処理として、以下の選択肢を思いつきました。 1. iOS内で完結(Authアカウント作成後、Firestoreのユーザ作成処理を行う) 2. iOSでAuthアカウント作成をトリガーに、Clound Functionsを使い、firestoreユーザを作成 3. Cloud Functionsにemailとpasswordを送り、AuthとFirestoreのユーザを作成、Functionsが成功したら、iOS内でログイン処理 以下のようなデメリットがそれぞれあると考えています・ 1はwebやAndroidにも、AuthとFirestoreのユーザ作成コードをそれぞれ書く必要がある 2はトリガーの遅延が最大10秒ほどあるので、2画面目でユーザ名をAuthに保存して、更新をトリガーにFunctionsでFirestoreにコピーする必要がある? 3はそもそもFunctionsからAuthのユーザを作成できないかも?セキュリティ的にもよくないかも? この中だと1が妥当かな、と考えているのですが、どのような方法をとるのが無難でしょうか? よろしくお願いいたします。
回答: > > この中だと1が妥当かな、と考えているのですが、どのような方法をとるのが無難でしょうか? > > > 1が無難でしょう。SDKを使えば大したことない処理なので、実装の手間はあまり考えなくて良いと思います。 2または3にしたとしても、一部のコードをFunctionsに持っていけるだけで、ユーザ作成に関するコード(エラーハンドリング等含む)はそれぞれ書く必要がありますしね。 前に同じような質問もあったので紹介しておきます。