如何每天自动上传 .json 到 Firebase

How to automaticaly upload .json on daily basis to Firebase

我们公司每天生成一个 .json,其中包含我们的移动应用程序的数据,该应用程序在 Firebase 上有数据库。我们手动将数据上传到它,但我们已经做了几个月了,这很痛苦。

我们的供应商试图创建一个与此 cmdlet gcsupload-windows.exe /key:"C:\Data\myapp-test-sdk.json" /bucket:"myapp-test.appspot.com" /dst:"Import" "C:\Data\json\*.json" 一起使用的上传器,他们基于 https://github.com/googleapis/google-cloud-go/tree/master/storage 创建了它,但这不是我的专长,所以我只能告诉你它的作用.

DevOps 为我创建了一个 Win Core 服务器,他们说这就足够了,所以我只依赖 CMD...

一旦我进入 CMD 并在域外输入命令,它确实上传.json到服务器,所以我确定上传器和命令是正确的并且工作正常,但是当我在域中时它变得混乱并且 cmd 回复 无法获取存储桶元数据 等等。 .

命令输入:PS: D:\Uploader> .\gcsupload-windows.exe /key:"D:\Firebase_Key\myapp-test.json" /bucket:"myapp-test.appspot.com" /dst:"Import-Test" /src:"D:\myapp_json"

命令输出:Failed to get bucket metadata: Get "https://storage.googleapis.com/storage/v1/b/myapp-test.appspot.com?alt=json&prettyPrint=false&projection=full" oauth2: cannot fetch token: Post "https://oautha.googleapis.com/token" dial tcp 216.58.201.74:443: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond

代理服务器在我的机器上设置正确,流量在代理服务器上全部被接受。

供应商说这可能是 gRPC 的问题,但同样,这不是我的专长,所以请明智的 stackoverflow 请问我,拍我,请帮我解决这个问题。谢谢

对于仍然对此感兴趣的任何人... 我们偶然发现了解决方案(更像是一种解决方法)。我尝试了所有我能在互联网上找到的东西,我不得不添加这个 $proxyString = "http://proxy:8080" $proxyUri = new-object System.Uri($proxyString) [System.Net.WebRequest]::DefaultWebProxy = new-object System.Net.WebProxy ($proxyUri, $true) [System.Net.WebRequest]::DefaultWebProxy.Credentials=[System.Net.CredentialCache]::DefaultCredentials 只是选择 IE 设置,这有点帮助,但还不够。有人说要修改上传器并为其提供凭据,我应该使用这些凭据对代理进行身份验证,但这看起来不安全。 我很无助,尝试 invoke-webrequest http://google.com 只是为了确定我是否正在连接到代理,再次尝试了上传器的命令,瞧——它成功了! 看起来 invoke-webrequest 正在做一些事情,比如告诉它背后的一切与代理一起工作,无论如何它都有效。所以我的整个脚本看起来像这样:

$proxyString = "http://proxy:8080"
$proxyUri = new-object System.Uri($proxyString)
[System.Net.WebRequest]::DefaultWebProxy = new-object System.Net.WebProxy ($proxyUri, $true)
[System.Net.WebRequest]::DefaultWebProxy.Credentials=[System.Net.CredentialCache]::DefaultCredentials
invoke-webrequest http://google.com
$Env:HTTP_PROXY = "http://proxy:8080"
D:\Uploader\gcsuploader.exe /key:"D:\Firebase_key\myapp-prod-firebase-adminsdk.json" /bucket:"myapp-prod.appspot.com" /dst:"Import" "D:\Myapp_json\*.json" >> "c:\Uploader_logs\uploader $(get-date -f yyyy-MM-dd).log" 2>&1