使用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)
    }
}
广告
将在 10 秒后关闭
bannerAds