Как переопределить Google Cloud Project в Firebase в случае учетной записи службы по умолчанию? (иди админ sdk) - PullRequest
1 голос
/ 31 мая 2019

Фон

Рассмотрим функцию func NewApp(ctx context.Context, config *Config, opts ...option.ClientOption) (*App, error).

Теоретически должна быть возможность переопределить идентификатор проекта через config параметр .

Однако проблема заключается в том, что при извлечении учетных данных также определяется идентификатор проекта, и это происходит за до переопределить через config (или через GOOGLE_CLOUD_PROJECT / GCLOUD_PROJECT env. переменные в этом отношении.)

В результате токен будет для идентификатора проекта по умолчанию, а не для переопределенного.

Подробные шаги

Предположим, мы используем «учетную запись службы по умолчанию» согласно здесь :

Если переменная среды не задана, ADC использует учетную запись службы по умолчанию, которую предоставляют Compute Engine, Kubernetes Engine, App Engine и облачные функции для приложений, работающих на этих службах.

Вот что произойдет в этом случае:

creds, err := transport.Creds(ctx, o...)

return internal.Creds(ctx, &ds)

cred, err := google.FindDefaultCredentials(ctx, ds.Scopes...)

id, _ := metadata.ProjectID() // (x) at this point we get the default project ID

func ProjectID() (string, error) { return defaultClient.ProjectID() }

func (c *Client) ProjectID() (string, error) { return projID.get(c) }

v, err = cl.Get(c.k)

val, _, err := c.getETag(suffix)

res, err := c.hc.Do(req)

Короче говоря, мы получаем учетные данные с идентификатором проекта по умолчанию.

Вопрос: Я что-то упустил или действительно нет способа переопределить идентификатор проекта при использованииучетная запись службы по умолчанию?

Приложение: Возможно, проблема не в projectID в учетных данных, а в получении токена на предъявителя с настроенным там идентификатором проекта по умолчанию.Базовый вопрос («как переопределить проект») все еще актуален.

...