Переход на Go Admin SDK v4

Начиная с версии 4.0.0, Firebase Admin SDK для Go теперь использует модули Go . Кроме того, произошли существенные изменения в обработке ошибок и семантике.

Изменения при установке

В соответствии с передовыми методами работы с модулями , к имени пакета добавлена ​​основная версия SDK. Это изменение приводит к следующим обновлениям имен пакетов:

  • firebase.google.com/go → firebase.google.com/go/v4
  • firebase.google.com/go/auth → firebase.google.com/go/v4/auth
  • firebase.google.com/go/db → firebase.google.com/go/v4/db
  • firebase.google.com/go/iid → firebase.google.com/go/v4/iid
  • firebase.google.com/go/messaging → firebase.google.com/go/v4/messaging

Разработчики уже используют модули.

Используйте имя пакета с указанием версии, чтобы установить последнюю версию SDK.

# Install the latest version:
go install firebase.google.com/go/v4@latest

# Or install a specific version:
go install firebase.google.com/go/v4@4.18.0

При импорте SDK в исходный код необходимо использовать то же имя пакета с указанием версии.

package helloworld

import (
        "firebase.google.com/go/v4"
        "firebase.google.com/go/v4/auth"
        "firebase.google.com/go/v4/messaging"
)

Для установки более ранней версии используйте старое (неверсионированное) имя пакета с явным указанием версии.

# Notice the @v3 suffix.
# This instructs Go tools to fetch the latest v3.x release of the SDK.
go get firebase.google.com/go@v3

Разработчики в настоящее время не используют модули.

Разработчики, которые еще не подключили модули, могут продолжить установку SDK, используя имя пакета без указания версии.

go get firebase.google.com/go

Однако следует отметить, что при этом загружается последняя версия SDK (v4 или более поздняя), которая содержит и другие изменения в API, нарушающие совместимость.

Общие изменения в обработке ошибок

В SDK версии 4 представлен новый пакет errorutils , предоставляющий функции для обработки ошибок на уровне платформы. В случае, если ошибка была вызвана ошибкой в ​​работе серверной части, вы можете получить доступ к исходному ответу об ошибке, вызвав новую функцию errorutils.HTTPResponse() . Вы можете использовать функции этого пакета с ошибками, возвращаемыми любым API в SDK.

Изменения в API Authentication

  • Добавлены новые функции обработки ошибок, которые будут использоваться совместно с API-интерфейсами VerifyIDToken() и VerifySessionCookie() :
    • IsIDTokenInvalid()
    • IsIDTokenExpired()
    • IsSessionCookieInvalid()
    • IsSessionCookieExpired()
    • IsCertificateFetchFailed()
  • Устарело:
    • IsProjectNotFound()
    • IsUnknown()
    • IsInsufficientPermission()
    • IsInvalidEmail()

Изменения в API FCM

  • Переименован тип messaging.WebpushFCMOptions в messaging.WebpushFcmOptions .
  • Добавлен:
    • IsThirdPartyAuthError()
    • IsQuotaExceeded()
    • IsSenderIDMismatch()
    • IsUnregistered()
    • IsUnavailable()
  • Устарело:
    • IsInvalidAPNSCredentials()
    • IsMessageRateExceeded()
    • IsMismatchedCredential()
    • IsRegistrationTokenNotRegistered()
    • IsServerUnavailable()
    • IsTooManyTopics()
    • IsUnknown()

Изменения в API IID

Все функции обработки ошибок, доступные в настоящее время в пакете iid , устарели. Вместо них используйте соответствующие функции обработки ошибок, предоставляемые пакетом errorutils .