我正在從事一個專案,在該專案中我使用Gin框架進行 API 開發和Firestore作為資料庫。在本地一切正常。我能夠執行 CRUD 操作。當我將 API 部署到 時Heroku,我可以在日志中看到構建成功并且應用程式已部署。當我點擊它打開它時,它給出了錯誤"Application error"。這是因為 Heroku 沒有firestore從google-credentials.json檔案中讀取我的憑據。我不應該上傳google-credentials.json檔案,因為它有我的憑據。對于本地,我通過提供本地檔案路徑來讀取它。
控制器/用戶.go
var firestoreCredentialsLocation = "A:/Go/API_Gin/google-credentials.json" //local path to file
func GetUses(c *gin.Context) {
// Use a service account
ctx := context.Background()
sa := option.WithCredentialsFile(firestoreCredentialsLocation)
app, err := firebase.NewApp(ctx, nil, sa)
if err != nil {
log.Fatalln(err)
}
client, err := app.Firestore(ctx)
if err != nil {
log.Fatalln(err)
}
defer client.Close()
blah blah..........
blah blah..........
blah blah..........
}
c.IndentedJSON(http.StatusOK, gin.H{
"message": "Users returned successfully!",
})
}
點擊網址后報錯:
錯誤
日志:
日志
你們能告訴我如何解決這個問題嗎?我應該怎么做才能讓 Heroku 讀取我的資料庫憑據并成功部署應用程式?另外,告訴我給出 .json 檔案的路徑是一個好方法嗎?謝謝你。
uj5u.com熱心網友回復:
問題解決了。我以不正確的方式讀取埠值,因此應用程式崩潰。Heroku 的 Go 應用檔案幫助了我。
https://devcenter.heroku.com/articles/getting-started-with-go
uj5u.com熱心網友回復:
嘗試從環境變數中獲取憑據,而不是從檔案中獲取憑據。您可以查看此 Heroku 檔案以了解如何在 Heroku https://devcenter.heroku.com/articles/config-vars 中設定環境變數
uj5u.com熱心網友回復:
您可以在此處使用 Heroku google-credentials 構建包從環境變數中讀取 google-credentials 并在 heroku 中創建一個credentials.json
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/365605.html
標籤:接口 走 英雄联盟 谷歌云firestore 部署
上一篇:如何在Go中解鎖資料庫
下一篇:rails不呈現視圖
