micomia株式会社の井上です。今回はCreate Documentについて解説していきます。
初心者にも分かりやすく解説していくのでぜひご一読ください。
1. Create Documentとは
Create Documentとは、データベースに新しいコレクションを作成するアクションのことを指します。例えばプロフィール情報の入力時や投稿作成時に使われることが多いです。
2. Create Documentの使い方
Create Documentは何かデータがないと意味がないので今回は以下のようにtextfieldとButtonを使って、投稿(post)に関するデータを作成します。

データベースには、以下のようなコレクションを作成しています。今回はText Fieldに詳細文を入力してdescriptionとして保存できるようにしていきます。

3. Create Documentの実装
Create DocumentはActionの1つなので、通常通りAdd ActionでButtonにFirestoreのCreate Documentを追加します。

実装できたらコレクションを選択する箇所が出てくるので、postを選択します。

すると、フィールドを選択する箇所があるので、今回はText Fieldに入力するdescriptionとcreated_by(作成者)とcreated_at(作成日時)を残します。

次にそのフィールドの変数の設定をしていきます。まずcreated_byは、この投稿を作っているユーザーの情報を入れる必要があるのでAuthenticated UserのUser Referenceを入れます。

次に、descriptionはText Fieldに入力した内容を入れたいのでValue SourceはFrom VariableでWidget Stateから先ほどのText Fieldをセットします。

created_atは作成日時なのでFirestore Server Timestampを使用します。

これでCreate Documentは完成です。これだけでも実装としては特に問題ありませんが、UXの観点から投稿が作成できたことがユーザーにわかりやすいようにsnack barやダイアログを使用して伝えるActionもあるとより良いアプリになります。

4. さいごに
今回はCreate Documentについて解説していきました。アプリの要となる投稿作成やユーザー情報の作成時に必要になる機能なのでぜひ本記事を参考に実装してみてください。
本記事の内容を動画で観たい方は以下をご覧ください。


.webp%3Falt%3Dmedia%26token%3Da7c14698-1b08-4fea-89c6-f77a9121f4c5&w=3840&q=75)
.webp%3Falt%3Dmedia%26token%3D899eeefd-f4c9-44a6-9ec2-3ced0b223ffd&w=3840&q=75)
.webp%3Falt%3Dmedia%26token%3Dca25fa6b-e233-43f7-90c3-e68e4c5b0bc5&w=3840&q=75)
.webp%3Falt%3Dmedia%26token%3D7f18e5f1-cfda-4148-ab86-b3d2e6547262&w=3840&q=75)




.webp%3Falt%3Dmedia%26token%3D6ca2c2ef-9413-4453-b992-55b66b11ed54&w=3840&q=75)



.webp%3Falt%3Dmedia%26token%3D900f385d-12a2-449b-8d1e-83a57cef0088&w=3840&q=75)
.webp%3Falt%3Dmedia%26token%3D0e802fb0-2dda-44a7-bf80-5d39019635ba&w=3840&q=75)
.webp%3Falt%3Dmedia%26token%3D3fb3dc66-ecca-402e-8fb8-fbec9407f7f5&w=3840&q=75)
.webp%3Falt%3Dmedia%26token%3Ddb21d760-e1ed-4ec2-af28-3462041e31b5&w=3840&q=75)
.webp%3Falt%3Dmedia%26token%3Dcce7bd72-f11e-4292-86bf-e6ccf3e7bf32&w=3840&q=75)
.webp%3Falt%3Dmedia%26token%3D457ff920-e0df-4ff5-95eb-e29f74b73823&w=3840&q=75)
.webp%3Falt%3Dmedia%26token%3Dc21fcc77-7404-458d-9eb5-85b8d84ae1bc&w=3840&q=75)
.webp%3Falt%3Dmedia%26token%3D92052f12-5280-49df-877a-b514582e95db&w=3840&q=75)