在 google 云函数中找不到包 "firebase.google.com/go"
cannot find package "firebase.google.com/go" in google cloud function
我正在尝试 运行 使用 Firestore 服务器中的云函数存储一些随机数据的一些示例代码,但是,云函数部署命令拒绝构建命令:
// Package p contains an HTTP Cloud Function.
package p
import (
//...
firebase "firebase.google.com/go"
"log"
"net/http"
"os"
)
// Store1 Stores data on FireBase
func Store1(w http.ResponseWriter, r *http.Request) {
// Use the application default credentials
ctx := context.Background()
conf := &firebase.Config{ProjectID: "firefirefire"}
app, err := firebase.NewApp(ctx, conf)
if err != nil {
log.Fatalln(err)
}
client, err := app.Firestore(ctx)
if err != nil {
log.Fatalln(err)
}
defer client.Close()
_, _, err = client.Collection("users").Add(ctx, map[string]interface{}{
"first": "Ada",
"last": "Lovelace",
"born": 1815,
})
if err != nil {
log.Fatalf("Failed adding alovelace: %v", err)
}
fmt.Println("ENV:" + os.Getenv("VAR1"))
fmt.Fprint(w, html.EscapeString(d.Message))
}
这是我得到的错误:
localhost:store1 b$ ./deploy.sh
Updated property [functions/region].
Deploying function (may take a while - up to 2 minutes)...failed.
ERROR: (gcloud.functions.deploy) OperationError: code=3, message=Build failed: /tmp/sgb/gopath/src/serverlessapp/vendor/p/store1.go:6:2: cannot find package "firebase.google.com/go" in any of:
/tmp/sgb/gopath/src/serverlessapp/vendor/firebase.google.com/go (vendor tree)
/go/src/firebase.google.com/go (from $GOROOT)
/tmp/sgb/gopath/src/firebase.google.com/go (from $GOPATH)
如您所见,问题似乎是 Google 在 Cloud Functions 引擎上没有 firebase.google.com/go,因此我无法拥有我的无服务器配置做 firebase 的事情。
我应该转移到 CloudSQL 并只支付 11 美元的费用吗?
我应该继续尝试让 Firebase 正常工作吗?
我应该尝试使用 Firebase 函数吗?
请指教
根据你的描述和代码,如果我清楚地理解你的问题,你正在尝试触发一个 HTTP Cloud Function 将数据写入 Cloud Firestore。
部署云功能时,找不到包 "firebase.google.com/go" 云。”。因为“firebase.google.com/go”是 Firebase Admin SDK. However, Cloud Function, the Google Cloud Client Library for Go is installed. Based on your requirement, It seems Cloud Functions for Firebase 的入口点,可能会提供您需要的解决方案。
我正在尝试 运行 使用 Firestore 服务器中的云函数存储一些随机数据的一些示例代码,但是,云函数部署命令拒绝构建命令:
// Package p contains an HTTP Cloud Function.
package p
import (
//...
firebase "firebase.google.com/go"
"log"
"net/http"
"os"
)
// Store1 Stores data on FireBase
func Store1(w http.ResponseWriter, r *http.Request) {
// Use the application default credentials
ctx := context.Background()
conf := &firebase.Config{ProjectID: "firefirefire"}
app, err := firebase.NewApp(ctx, conf)
if err != nil {
log.Fatalln(err)
}
client, err := app.Firestore(ctx)
if err != nil {
log.Fatalln(err)
}
defer client.Close()
_, _, err = client.Collection("users").Add(ctx, map[string]interface{}{
"first": "Ada",
"last": "Lovelace",
"born": 1815,
})
if err != nil {
log.Fatalf("Failed adding alovelace: %v", err)
}
fmt.Println("ENV:" + os.Getenv("VAR1"))
fmt.Fprint(w, html.EscapeString(d.Message))
}
这是我得到的错误:
localhost:store1 b$ ./deploy.sh
Updated property [functions/region].
Deploying function (may take a while - up to 2 minutes)...failed.
ERROR: (gcloud.functions.deploy) OperationError: code=3, message=Build failed: /tmp/sgb/gopath/src/serverlessapp/vendor/p/store1.go:6:2: cannot find package "firebase.google.com/go" in any of:
/tmp/sgb/gopath/src/serverlessapp/vendor/firebase.google.com/go (vendor tree)
/go/src/firebase.google.com/go (from $GOROOT)
/tmp/sgb/gopath/src/firebase.google.com/go (from $GOPATH)
如您所见,问题似乎是 Google 在 Cloud Functions 引擎上没有 firebase.google.com/go,因此我无法拥有我的无服务器配置做 firebase 的事情。 我应该转移到 CloudSQL 并只支付 11 美元的费用吗? 我应该继续尝试让 Firebase 正常工作吗? 我应该尝试使用 Firebase 函数吗? 请指教
根据你的描述和代码,如果我清楚地理解你的问题,你正在尝试触发一个 HTTP Cloud Function 将数据写入 Cloud Firestore。 部署云功能时,找不到包 "firebase.google.com/go" 云。”。因为“firebase.google.com/go”是 Firebase Admin SDK. However, Cloud Function, the Google Cloud Client Library for Go is installed. Based on your requirement, It seems Cloud Functions for Firebase 的入口点,可能会提供您需要的解决方案。