我已经编写了一个Golang程序,旨在解析scv文件并将数据上传到FireStore,该程序旨在与仅编写scv路径以上传信息的人们共享。
我正在使用它来使用firebase-admin:
opt := option.WithCredentialsFile("path/to/serviceAccountKey.json")
当我这样做时,这种方法可以正常工作
$ go run main.go
但是当我构建项目并执行二进制文件时,我得到了:
$ cannot read credentials file: open firebase-config.json: no such file or directory
我做了read this approach,但这也意味着也要共享 firebase-config.json , 这个Go程序的想法就是共享可执行文件,而无需任何其他文档。
有没有办法像这样直接构建包含json的程序或使用json验证firebase-admin?
opt := option.WithCredentials({< authentication json >})
我没有找到使用此方法 WithCredential 的文档或示例。
答案 0 :(得分:0)
我不知道这是否是解决此问题的最佳方法,但这就是我的方法:
所以,现在我可以这样做:
var file string = "/opt/< dir-name >/auth.json"
sa := option.WithCredentialsFile(file)
现在,我可以与指令“安装到 / opt / <目录名> / bin 中并将其添加到您的 $ PATH ”中共享此脚本
>答案 1 :(得分:0)
对我来说,我使用$ GOPATH解决此问题
我将代码更改为
opt:= option.WithCredentialsFile(“ / home / Frank / work / myfile.json”)
以某种方式起作用。 :D
答案 2 :(得分:0)
当我尝试使用Go将使用Node编写的Google Cloud Functions移至Google Cloud Run(GCR)时,遇到了firebase-admin
的确切问题。具体来说,错误初始化应用程序时出错:无法读取凭据文件:打开./firebase.json:没有此类文件或目录
我不确定为什么,但是当我将容器推到GCR时,JSON文件丢失了,无法连接到firebase-admin
。我猜想就像您在说,Go程序在理论上应该是独立的。
我相信我找到了适合我需求的解决方案,希望对您有所帮助。
opt := option.WithCredentialsJSON([]byte(`{"some": "json"}`))
这确实意味着将JSON文件压缩为一个字符串,这绝对不能在所有情况下都起作用。但是,由于 firebase.json 文件通常很小,因此对于这种用例IMO应该没问题。
引导我走这条路的链接,如果这些链接更改或中断,则留在最后: