Начиная с версии 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.