Vin*_*gui 5 go oauth-2.0 firebase firebase-authentication google-cloud-firestore
大家好,
我正在与 Golang 合作,开发一款可以在家里本地运行的软件,但也可以与一些云数据同步(每个用户登录单独保护)。为此,我决定使用 Google Cloud Service - Firebase(IAP、托管、Functions 和 Firestore)。让我告诉你,我喜欢开发和学习这些。
然而,问题来了:我对 Google 提供的用于其服务的 Golang 工具(库)感到非常困惑。他们似乎拥有定义明确的 Golang 库来配合他们的服务IF因为您必须向其导出凭据。
就我而言,我正在开发的软件将在客户端计算机上运行,因此我需要客户端登录 IAP 等。任何人都可以帮助我吗?
package main
import (
"context"
"fmt"
"cloud.google.com/go/firestore"
"golang.org/x/oauth2"
"google.golang.org/api/option"
)
func main() {
ctx := context.Background()
token := oauth2.Token{
AccessToken: "TOKEN_ID-FROM-IAP",
TokenType: "Bearer",
RefreshToken: "REFRESH_TOKEN-from-IAP",
}
oauthClient := &oauth2.Config{}
tSource := oauthClient.TokenSource(ctx, &token)
client, err := firestore.NewClient(ctx, "ProjectID", option.WithTokenSource(tSource))
if err != nil {
// TODO: Handle error.
}
defer client.Close()
iter := client.Doc("docPath").Snapshots(ctx)
defer iter.Stop()
for {
docsnap, err := iter.Next()
if err != nil {
// TODO: Handle error.
}
dataMap := docsnap.Data()
fmt.Println(dataMap)
}
}
Run Code Online (Sandbox Code Playgroud)
从私有 Firebase 项目的非管理员客户端帐户的角度来看:
我感谢您的想法和建议,提前谢谢您!