Переход на 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.22.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()

Изменения в Instance ID API

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