не удается найти пакет "firebase.google.com/go" в облачной функции Google - PullRequest
0 голосов
/ 05 июля 2019

Я пытаюсь запустить пример кода, который хранит некоторые случайные данные, используя облачную функцию на сервере Firestore, однако команда облачных функций deploy отказывается создавать команду:

// 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 нет firebase.google.com/go на движке облачных функций, и в результате я не могу заставить мою безсерверную конфигурацию выполнять работу с firebase. Должен ли я перейти на CloudSQL и заплатить 11 долларов? Должен ли я продолжать пытаться заставить Firebase работать? Должен ли я попробовать функцию Firebase вместо этого? Пожалуйста, сообщите.

1 Ответ

1 голос
/ 05 июля 2019

Согласно вашему описанию и кодам, если я ясно понимаю вашу проблему, вы пытаетесь запустить облачную функцию HTTP для записи данных в Cloud Firestore.При развертывании облачной функции пакет «firebase.google.com/go» не будет найден ».Создайте firebase.google.com/go, который является точкой входа в Firebase Admin SDK .Тем не менее, Cloud Function, Клиентская библиотека Google Cloud для Go установлена ​​.Исходя из ваших требований, Облачные функции для Firebase могут предоставить вам необходимое решение.

...