使用Go语言连接到Firebase Cloud Firestore并获取值
获取Firebase共享密钥
登入Firebase控制台。
在「設定」→「專案設定」中顯示設定畫面。
點選「服務帳戶」標籤,顯示Firebase管理員SDK。
在Admin SDK配置代码段中选择Go语言。
点击【生成新秘钥】按钮,下载秘钥文件(json)。
客户连接
package main
import (
"fmt"
"golang.org/x/net/context"
firebase "firebase.google.com/go"
"google.golang.org/api/option"
)
func main() {
opt := option.WithCredentialsFile("key.json")
ctx := context.Background()
app, err := firebase.NewApp(ctx, nil, opt)
if err != nil {
fmt.Errorf("error initializing app: %v", err)
}
client, err := app.Firestore(ctx)
if err != nil {
fmt.Errorf("error initializing client: %v", err)
}
defer client.Close()
fmt.Println("Connection done")
}
获取值
package main
import (
"fmt"
"golang.org/x/net/context"
firebase "firebase.google.com/go"
"google.golang.org/api/option"
)
func main() {
// クライアント接続
opt := option.WithCredentialsFile("key.json")
ctx := context.Background()
app, err := firebase.NewApp(ctx, nil, opt)
if err != nil {
fmt.Errorf("error initializing app: %v", err)
}
client, err := app.Firestore(ctx)
if err != nil {
fmt.Errorf("error initializing client: %v", err)
}
defer client.Close()
fmt.Println("Connection done")
// 値の取得
collection := client.Collection("コレクションID")
doc := collection.Doc("ドキュメントID")
field, err := doc.Get(ctx)
if err != nil {
fmt.Errorf("error get data: %v", err)
}
data := field.Data()
for key, value := range data {
fmt.Printf("key: %v, value: %v\n", key, value)
}
}