質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Cloud Firestore

Cloud Firestore は、自動スケーリングと高性能を実現し、アプリケーション開発を簡素化するように構築された NoSQLドキュメントデータベースです。

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

Q&A

解決済

1回答

2591閲覧

Cloud Firestoreのローカルエミュレータでエラーになる

tetra_

総合スコア2

Cloud Firestore

Cloud Firestore は、自動スケーリングと高性能を実現し、アプリケーション開発を簡素化するように構築された NoSQLドキュメントデータベースです。

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

0グッド

0クリップ

投稿2020/06/11 01:36

前提・実現したいこと

Cloud Firestoreのローカルエミュレータを使いたい

コマンド実行
$ export FIRESTORE_EMULATOR_HOST=localhost:8812
$ gcloud beta emulators firestore start --host-port=localhost:8812
この順でエミュレータを立ち上げています

発生している問題・エラーメッセージ

{"time":"2020-06-11T10:19:11.789139+09:00","id":"","remote_ip":"::1","host":"localhost:8080","method":"GET","uri":"/","user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36","status":404,"error":"code=404, message=Not Found","latency":152536,"latency_human":"152.536µs","bytes_in":0,"bytes_out":24} 2020/06/11 10:19:23 rpc error: code = NotFound desc = The project testing does not exist or it does not contain an active Cloud Datastore or Cloud Firestore database. Please visit http://console.cloud.google.com to create a project or https://console.cloud.google.com/datastore/setup?project=testing to add a Cloud Datastore or Cloud Firestore database. Note that Cloud Datastore or Cloud Firestore always have an associated App Engine app and this app must not be disabled. exit status 1 (base) takeuchikaoru@takeuchikaorunoMacBook-Pro training_2020_kaoru_takeuchi %

該当のソースコード

main

1package main 2 3import ( 4 "github.com/labstack/echo" 5 "github.com/labstack/echo/middleware" 6 "github.com/topgate/training_2020_kaoru_takeuchi/handler" 7) 8 9func main() { 10 e := echo.New() 11 e.Use(middleware.Logger()) 12 e.Use(middleware.Recover()) 13 e.GET("/user/:id",handler.GetUser) 14 e.POST("/user",handler.CreateUser) 15 e.PUT("/user/:id",handler.UpdateUser) 16 e.DELETE("/user/:id",handler.DeleteUser) 17 e.Logger.Fatal(e.Start(":8080")) 18}

user

1func CreateUser(c echo.Context) error{ 2 uuid := uuid.New().String() 3 userModel := &model.User{ 4 ID: uuid, 5 Email: c.FormValue("email"), 6 PassWord: c.FormValue("password"), 7 UserName: c.FormValue("name"), 8 } 9 Repository.Add(*userModel) 10 //同じEmailの確認とDB書き込み処理 11 12 return c.JSON(http.StatusOK, userModel) 13}

Repository

1kage Repository 2 3import ( 4 "context" 5 "cloud.google.com/go/firestore" 6 "log" 7) 8 9 10func Add(usermodel model.User) { 11 12 ctx := context.Background() 13 14 // firebase projectIDは適当でOK 15 store, err := firestore.NewClient(ctx, "testing") 16 if err != nil { 17 log.Fatal(err) 18 } 19 _, _, err = store.Collection("users").Add(ctx, usermodel) 20 if err != nil { 21 log.Fatal(err) 22 } 23}

試したこと

projectIDをtestingからGCPのプロジェクトIDにすると動きました。
テーブルも生成され正常動作します。
しかし、ローカルでやろうとするとエラーが吐き先に進めません。
ご教授お願いいたします。

補足情報(FW/ツールのバージョンなど)

Go version1.14.3
エディター GoLand
テストツールPostman

イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

gcloud beta emulators firestore start --host-port=localhost:8812

エミュレータの起動時に --project testing の指定が必要ではないですか?

同様に export FIRESTORE_PROJECT_ID=testing も必要ではないですか?

投稿2020/06/12 01:49

d_tutuz

総合スコア730

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tetra_

2020/06/30 10:09

すみません。回答遅くなりました。 ターミナルを別々にしていたのでgo run main.goのコマンドを実行するターミナルで export FIRESTORE_PROJECT_ID=testing を叩いていませんでした。 回答有難うございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問