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

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

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

秋山笹川先生

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

今回で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」で消していくという処理ですのでこうなりますね。

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

第4回へつづく!

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

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

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

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

次回の記事はこちら

オススメのGo入門本

Goプログラミング実践入門 標準ライブラリでゼロからWebアプリを作る
Goプログラミング実践入門 標準ライブラリでゼロからWebアプリを作る

 

こちらの記事もオススメ!

第1回の記事はこちら

書いた人はこんな人

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

関連記事

採用情報

\ あの有名サービスに参画!? /

バックエンドエンジニア

\ クリエイティブの最前線 /

フロントエンドエンジニア

\ 世界を変える…! /

Androidエンジニア

\ みんなが使うアプリを創る /

iOSエンジニア