Migra al SDK de Admin para Go v4

A partir de la versión 4.0.0, en el SDK de Firebase Admin para Go, se habilitaron los módulos de Go. Además, hay cambios rotundos en el manejo de errores y en la semántica.

Cambios en la instalación

De acuerdo con las prácticas recomendadas para los módulos, se agregó la versión principal del SDK al nombre del paquete. Este cambio da como resultado las siguientes actualizaciones de nombre de paquete:

  • 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

Desarrolladores que ya usan módulos

Usa el nombre del paquete con versión para instalar la última versión del 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.13.0

Se debe usar el mismo nombre de paquete con versión en el código fuente cuando se importa el SDK.

package helloworld

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

Para instalar una versión anterior, usa el nombre de paquete anterior (sin versión) con un calificador de versión 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

Desarrolladores que no usan módulos

Los desarrolladores que aún no habilitaron módulos pueden continuar instalando el SDK con el nombre de paquete sin versión.

go get firebase.google.com/go

Sin embargo, ten en cuenta que esto recupera la última versión del SDK (v4 o posterior) que contiene otros cambios rotundos en la API.

Cambios en el manejo general de errores

El SDK v4 incluye un nuevo paquete errorutils que proporciona funciones para manejar las condiciones de error a nivel de la plataforma. En el caso de que se produzca un error por un servicio de backend, puedes acceder a la respuesta del error original si llamas a la nueva función errorutils.HTTPResponse(). Puedes usar las funciones de este paquete con errores que muestra cualquier API en el SDK.

Cambios en la API de Authentication

  • Se agregaron nuevas funciones de manejo de errores para usarse junto con las APIs VerifyIDToken() y VerifySessionCookie():
    • IsIDTokenInvalid()
    • IsIDTokenExpired()
    • IsSessionCookieInvalid()
    • IsSessionCookieExpired()
    • IsCertificateFetchFailed()
  • Obsoletas:
    • IsProjectNotFound()
    • IsUnknown()
    • IsInsufficientPermission()
    • IsInvalidEmail()

Cambios en la API de FCM

  • Se cambió el nombre del tipo messaging.WebpushFCMOptions a messaging.WebpushFcmOptions.
  • Se agregaron:
    • IsThirdPartyAuthError()
    • IsQuotaExceeded()
    • IsSenderIDMismatch()
    • IsUnregistered()
    • IsUnavailable()
  • Obsoletas:
    • IsInvalidAPNSCredentials()
    • IsMessageRateExceeded()
    • IsMismatchedCredential()
    • IsRegistrationTokenNotRegistered()
    • IsServerUnavailable()
    • IsTooManyTopics()
    • IsUnknown()

Cambios en la API de IID

Todas las funciones de manejo de errores disponibles en el paquete iid están obsoletas. Usa en su lugar las funciones de control de errores correspondientes que se proporcionan en el paquete errorutils.