diff --git a/cloudbuild.yaml b/cloudbuild.yaml index 28caf78..3b0e4ce 100644 --- a/cloudbuild.yaml +++ b/cloudbuild.yaml @@ -25,7 +25,7 @@ steps: "--image", "${_REGION}-docker.pkg.dev/${PROJECT_ID}/${_REPOSITORY}/${_SERVICE_NAME}:${TAG_NAME}", "--set-env-vars", - "ENVIRONMENT=${_ENVIRONMENT},ALLOW_ORIGIN=${_ALLOW_ORIGIN},TRUSTED_PROXY=${_TRUSTED_PROXY},FIREBASE_PROJECT_ID=${PROJECT_ID}", + "ENVIRONMENT=${_ENVIRONMENT},ALLOW_ORIGIN=${_ALLOW_ORIGIN},TRUSTED_PROXY=${_TRUSTED_PROXY},GOOGLE_CLOUD_PROJECT_ID=${PROJECT_ID}", "--region", "${_REGION}", "--service-account", diff --git a/cmd/app/main.go b/cmd/app/main.go index 1bcf8fc..4c4862e 100644 --- a/cmd/app/main.go +++ b/cmd/app/main.go @@ -26,7 +26,7 @@ func main() { gotenv.Load(fmt.Sprintf(".env.%v", mode)) gotenv.Load(fmt.Sprintf(".env.%v.local", mode)) - err := db.InitDatabaseClient(os.Getenv("FIREBASE_PROJECT_ID")) + err := db.InitDatabaseClient(os.Getenv("GOOGLE_CLOUD_PROJECT_ID")) if err != nil { log.Fatalf("Failed to initialize database: %v", err) } @@ -48,5 +48,13 @@ func main() { router.POST("/api/hello-world", api.HelloWorldHandler) - router.Run(":8080") + err = router.Run(":8080") + if err != nil { + log.Fatalf("Failed to run gin server: %v", err) + } + + err = db.FinalizeDatabaseClient() + if err != nil { + log.Fatalf("Failed to finalize database: %v", err) + } } diff --git a/internal/api/hello_world_test.go b/internal/api/hello_world_test.go index 73f70de..02ef22a 100644 --- a/internal/api/hello_world_test.go +++ b/internal/api/hello_world_test.go @@ -8,6 +8,7 @@ import ( "strings" "testing" + "cloud.google.com/go/firestore" "github.com/gin-gonic/gin" "github.com/kumachan-mis/knodeledge-api/internal/db" "github.com/kumachan-mis/knodeledge-api/internal/model" @@ -15,8 +16,9 @@ import ( ) func TestMain(m *testing.M) { - db.InitDatabaseClient("test-project-id") + db.InitDatabaseClient(firestore.DetectProjectID) m.Run() + db.FinalizeDatabaseClient() } func TestHelloWorldHandler(t *testing.T) { diff --git a/internal/db/client.go b/internal/db/client.go index 014c6aa..3dac88c 100644 --- a/internal/db/client.go +++ b/internal/db/client.go @@ -4,21 +4,38 @@ import ( "context" "cloud.google.com/go/firestore" + firebase "firebase.google.com/go" ) var firestoreClient *firestore.Client var firestoreContext context.Context -func InitDatabaseClient(projectId string) error { - firestoreContext = context.Background() - client, err := firestore.NewClient(firestoreContext, projectId) +func InitDatabaseClient(projectID string) error { + ctx := context.Background() + conf := &firebase.Config{ProjectID: projectID} + + app, err := firebase.NewApp(ctx, conf) + if err != nil { + return err + } + + client, err := app.Firestore(ctx) if err != nil { return err } + firestoreClient = client + firestoreContext = ctx return nil } +func FinalizeDatabaseClient() error { + err := firestoreClient.Close() + firestoreClient = nil + firestoreContext = nil + return err +} + func FirestoreClient() *firestore.Client { return firestoreClient }