Как исправить «аутентификацию при сбое рукопожатия» при попытке сохранить данные в Google Firestore с помощью Golang / Cloud Function - PullRequest
1 голос
/ 12 апреля 2019

Я использую Google Cloud Function для Go / Golang (Http-триггер) и настраиваю данные для хранения данных в базе данных Firestore.Но клиент всегда терпит неудачу с

"rpc error: code = Unavailable desc = все SubConn находятся в TransientFailure, последняя ошибка соединения: ошибка соединения: desc = transport: аутентификация не прошла: аутентификация по контексту превышена».

База данных была создана через консоль администратора Firebase (https://console.firebase.google.com) со следующими правилами

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if false;
    }
  }
}

Я работаю по плану Pay-as-you-Go.

«важный» импорт

import (
    "context"
    ...
    firebase "firebase.google.com/go"

)

код для сохранения

func saveValues(registration shared.Registration) error {

    ctx := context.Background()

    conf := &firebase.Config{ProjectID: projectID}
    app, err := firebase.NewApp(ctx, conf)
    if err != nil {
        return fmt.Errorf("error creating client %v", err)
    }

    client, err := app.Firestore(ctx)
    if err != nil {
        return fmt.Errorf("Failed to create client %v", err)
    }
    defer client.Close()

    t := time.Now()
    documentName := "registration"
    _, err = client.Collection("registration").Doc(documentName).Set(ctx, registration)
    if err != nil {
        return fmt.Errorf("Failed adding registration: %v", err)
    }

    return nil
}

go.mod файл:

module githib.com/kkoehler/<my-project>

require (
    cloud.google.com/go v0.37.4
    firebase.google.com/go v3.7.0+incompatible
    github.com/KyleBanks/depth v1.2.1 // indirect
    github.com/sirupsen/logrus v1.4.1
    golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a // indirect
    google.golang.org/api v0.3.2 // indirect
)

Последний вызов (client.Collection("registration").Doc(documentName).Set(ctx, registration)) происходит сбой с данным сообщением об ошибке.

Можно ли получить дополнительную информацию об этой проблеме? Любое предложение?

Спасибо, Кристиан

Решение

Это проблема с разрешениями в пожарном хранилище. Если я изменяю разрешения для базы данных пожарного хранилища, она работает. Временно изменено, чтобы писать для всех; -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...