Migrar para o SDK Admin para Go v4

A partir da versão 4.0.0, o Firebase Admin SDK para Go ativou os módulos Go. Além disso, há alterações interruptivas no tratamento de erros e na semântica.

Alterações na instalação

De acordo com as práticas recomendadas de módulos, a versão principal do SDK foi anexada ao nome do pacote. Essa alteração resultará nas seguintes atualizações de nome de pacote:

  • 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

Desenvolvedores que já usam módulos

Use o nome do pacote com controle de versão para instalar a versão mais recente do 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.15.0

O nome do pacote com controle de versão precisa ser usado no código-fonte ao importar o SDK.

package helloworld

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

Para instalar uma versão anterior, use o nome do pacote antigo (sem controle de versão) com um qualificador de versão explícito.

# 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

Desenvolvedores que não usam módulos

Os desenvolvedores que ainda não ativaram os módulos podem continuar instalando o SDK usando o nome do pacote sem controle de versão.

go get firebase.google.com/go

No entanto, isso busca a versão mais recente do SDK (v4 ou posterior), que contém outras alterações interruptivas da API.

Alterações gerais no tratamento de erros

O SDK v4 introduz um novo pacote errorutils que oferece funções para lidar com condições de erro no nível da plataforma. Caso um erro tenha sido causado por um erro no serviço de back-end, acesse a resposta de erro original chamando a nova função errorutils.HTTPResponse(). Você pode usar as funções neste pacote com erros retornados por qualquer API no SDK.

Alterações na API Authentication

  • Adicionamos novas funções de tratamento de erros para serem usadas com as APIs VerifyIDToken() e VerifySessionCookie():
    • IsIDTokenInvalid()
    • IsIDTokenExpired()
    • IsSessionCookieInvalid()
    • IsSessionCookieExpired()
    • IsCertificateFetchFailed()
  • Uso descontinuado:
    • IsProjectNotFound()
    • IsUnknown()
    • IsInsufficientPermission()
    • IsInvalidEmail()

Alterações na API FCM

  • Tipo messaging.WebpushFCMOptions renomeado para messaging.WebpushFcmOptions.
  • Adicionadas:
    • IsThirdPartyAuthError()
    • IsQuotaExceeded()
    • IsSenderIDMismatch()
    • IsUnregistered()
    • IsUnavailable()
  • Uso descontinuado:
    • IsInvalidAPNSCredentials()
    • IsMessageRateExceeded()
    • IsMismatchedCredential()
    • IsRegistrationTokenNotRegistered()
    • IsServerUnavailable()
    • IsTooManyTopics()
    • IsUnknown()

Alterações na API IID

Todas as funções de tratamento de erros disponíveis atualmente no pacote iid foram descontinuadas. Use as funções de tratamento de erros correspondentes fornecidas no pacote errorutils.