猿问

Heroku 没有读取 Firestore 凭据

我正在做一个项目,我正在使用GinAPI 开发框架和Firestore数据库。在本地,一切正常。我能够执行 CRUD 操作。当我将 API 部署到 时Heroku,我可以在日志中看到构建成功并且应用程序已部署。当我单击它打开它时,它给出了错误"Application error"。这是因为 Heroku 没有firestore从google-credentials.json文件中读取我的凭据。而且我不应该上传google-credentials.json文件,因为它有我的凭据。对于本地,我通过提供本地文件路径来阅读它。


控制器/users.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 文件的路径是一个好方法吗?谢谢你。


慕容森
浏览 279回答 3
3回答

哔哔one

问题解决了。我以不正确的方式读取端口值,因此,应用程序崩溃了。Heroku 的 Go 应用程序文档帮助了我。https://devcenter.heroku.com/articles/getting-started-with-go

开心每一天1111

不要从文件中获取凭据,而是尝试从环境变量中获取它们。您可以查看此 Heroku 文档以了解如何在 Heroku https://devcenter.heroku.com/articles/config-vars中设置环境变量

尚方宝剑之说

您可以在此处使用 Heroku google-credentials build pack从环境变量中读取 google-credentials 并在 heroku 中创建 credentials.json
随时随地看视频慕课网APP

相关分类

Go
我要回答