give & not take

日々、幸せに生きるために。。。

cloud firestore+golangで最小構成を試す

f:id:gaku3601:20180828081612p:plain

Gakuです。
firebase楽しいぉおお!Realtime Databaseすごいぉおお!
ん?Cloud Firestoreなるものの方が新しくて使いやすいらしい?(beta版だけれども)

ということで、基本的にはfront applicationであるvueで使用するんだけれども、今回の要件的にbackendのgolangでも使用できるようになる必要があったため、Cloud Firestore + golangの最小構成を作成してみました。
作成した全てのコードは以下に格納しています。

github.com

前提条件

・ユーザ認証は行いません。匿名で誰でも書き込める設定
・ルールも設定しません。誰でも何でも書き込める設定

ゆる〜い感じです。とりあえず、動かしてみたいという要件です(´・ω・`)

コード

package main

import (
    "context"
    "log"

    "cloud.google.com/go/firestore"
)

func main() {
    ctx := context.Background()
    client, err := firestore.NewClient(ctx, "ProjectID")
    if err != nil {
        log.Fatal(err)
    }

    type Account struct {
        Name    string
        Balance string
    }
    acc := Account{
        Name:    "Alice",
        Balance: "ababa",
    }
    if _, _, err = client.Collection("chatroom").Doc("roomC").Collection("message").Add(ctx, acc); err != nil {
        log.Fatal(err)
    }
}

client, err := firestore.NewClient(ctx, "ProjectID")部分を作成したプロジェクトIDに変更してあげれば、指定PJのDBに書き込まれます。
Cloud Firestoreで確認します。

f:id:gaku3601:20180828081139p:plain

めっちゃ簡単でした(´・ω・`)b

さいごに

今回は最初の触りとして、golangを使用したCloud Firestoreへの書き込み方法を書かせていただきました。
FirebaseはmBaaSなので、あまりgolangで触る機会はないかと思いますが、backendでも簡単に扱うことが可能です(´・ω・`)b