fbpx
  1. HOME
  2. ブログ
  3. IT技術
  4. 【第3回】Go言語(Golang)入門~Firestoreデータ操作編~

【第3回】Go言語(Golang)入門~Firestoreデータ操作編~

Go言語(Golang)入門~第3回目~

秋山笹川先生

(株)ライトコードの笹川(ささがわ)です。

今回でGo言語(Golang)入門3回目!

前回に引き続き、Firestoreについて書いていきます。

今回は、データの操作をしてみよう編です!

前回の記事はこちら

データを追加してみよう

前回同様、以下ドキュメントを参考に進めたいと思います。

【データを追加する】
https://firebase.google.com/docs/firestore/quickstart?hl=ja#add_data

今回も、初期化は忘れずに入れましょう!

ドキュメントでは、各メソッドしかないのでちょっと迷いますよね!

これで実行をすると、下記のようにデータが追加されているのを確認することができます。

データ追加

さらに、別のデータも追加してみましょう。

実行

それでは、実行してみましょう!

データがしっかりと追加されていました!

データを読みとってみよう

下記に書いてある通りに記述してみましょう。

【データを読み取る】
https://firebase.google.com/docs/firestore/quickstart?hl=ja#read_data

初期化も忘れずにやりましょう!

実行

実行してみましょう!

先程追加した2件のデータが読み取れています!

データを更新してみよう

こちらは、チュートリアルにないのですが、以下のドキュメントを参考にしてみました。

【Cloud Firestore にデータを追加する】
https://firebase.google.com/docs/firestore/manage-data/add-data?hl=ja

Addで追加する方法が見つからなかったので、Setで追加し、Setで更新してみます。

実行するとデータ追加がされます。

firstを更新

実行

それでは、実行してみましょう!

ばっちり更新されました!

Addではなく「最初からSetをチュートリアルで書いてくれればいいのに」と思いました(笑)

データを削除してみよう

データ削除も、チュートリアルにはありません。

そのため、以下のドキュメントを参考にしたいと思います。

【Cloud Firestore からデータを削除する】
https://firebase.google.com/docs/firestore/manage-data/delete-data?hl=ja

フィールドの削除

では、まずフィールドの削除をしてみます。

実行

実行してエラーがでなければ、成功です。

では、実際にデータを見てみましょう!

「middle」が消えていますね!

user2を削除してみる

このまま、この「user2」を削除してみます。

エラーが出ないので成功です!

しかし、コンソール上だとデータが消えていません!

下記ドキュメントだとこのように書かれています。

【Cloud Firestore からデータを削除する】
https://firebase.google.com/docs/firestore/manage-data/delete-data?hl=ja

警告: ドキュメントを削除しても、そのドキュメントのサブコレクションは削除されません。

ドキュメントを削除しても、Cloud Firestore はサブコレクション内のドキュメントを自動的には削除しません。サブコレクションのドキュメントには参照により引き続きアクセスできます。たとえば、パス /mycoll/mydoc/mysubcoll/mysubdoc にあるドキュメントには、/mycoll/mydoc の祖先ドキュメントを削除してもアクセスできます。

存在しない祖先ドキュメントはコンソールには表示されますが、クエリの結果やスナップショットには表示されません。

ドキュメントと、そのドキュメントのサブコレクション内のすべてのドキュメントを削除するには、手動での操作が必要です。詳しくは、コレクションを削除するをご覧ください。

手動で削除が必要ならば、なぜこの処理が用意されているんでしょうか…?

コレクションの削除

次は、コレクションの削除をしてみます。

こちらは、エラーハンドリングを端折ってしまったので、ビルド時にエラーが出なければ、そのまま実行で問題ありません。

「uesrs」というidは、消えないようです。

確かに処理の内容としては、usersのドキュメントとコレクションを「for」で消していくという処理ですのでこうなりますね。

データ削除については、なんだか弱い気がしました。

さいごに

データの操作について、いろいろ試してみました。

今回は、Go言語(Golang)より、Firestoreの使い方のほうにつまずいた印象がありました。

データの扱いは「追加」「読み取り」「更新」「削除」をやれないと意味ないですからね!

今回、作成したgoファイルはこちらのリポジトリにて管理しています。

関連記事

一緒に働いてくれる仲間を募集しております!

ライトコードでは、仲間を募集しております!

当社のモットーは「好きなことを仕事にするエンジニア集団」「エンジニアによるエンジニアのための会社」。エンジニアであるあなたの「やってみたいこと」を全力で応援する会社です。

また、ライトコードは現在、急成長中!だからこそ、あなたにお任せしたいやりがいのあるお仕事は沢山あります。「コアメンバー」として活躍してくれる、あなたからのご応募をお待ちしております!

なお、ご応募の前に、「話しだけ聞いてみたい」「社内の雰囲気を知りたい」という方はこちらをご覧ください。

ライトコードでは一緒に働いていただける方を募集しております!

採用情報はこちら

書いた人はこんな人

笹川 (社員)
笹川 (社員)
新潟生まれ新潟育ち本業はモバイルアプリエンジニア。
日々、猫(犬)エンジニアとして活躍中!

関連記事