Go Admin SDK v4로 마이그레이션

Go용 Firebase Admin SDK 버전 4.0.0부터는 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.15.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

하지만 이 경우 다른 브레이킹 API 체인지가 포함된 최신 버전의 SDK (v4 이상)를 가져옵니다.

일반적인 오류 처리 변경사항

v4 SDK에는 플랫폼 수준의 오류 조건을 처리하는 함수를 제공하는 새로운 errorutils 패키지가 도입되었습니다. 백엔드 서비스 오류로 인해 오류가 발생한 경우 새로운 함수 errorutils.HTTPResponse()를 호출하여 원래 오류 응답에 액세스할 수 있습니다. SDK의 모든 API에서 반환되는 오류에 이 패키지의 함수를 사용할 수 있습니다.

Authentication API 변경사항

  • VerifyIDToken()VerifySessionCookie() API와 함께 사용할 새로운 오류 처리 함수 추가됨:
    • IsIDTokenInvalid()
    • IsIDTokenExpired()
    • IsSessionCookieInvalid()
    • IsSessionCookieExpired()
    • IsCertificateFetchFailed()
  • 지원 중단됨:
    • IsProjectNotFound()
    • IsUnknown()
    • IsInsufficientPermission()
    • IsInvalidEmail()

FCM API 변경사항

  • 유형 messaging.WebpushFCMOptions의 이름을 messaging.WebpushFcmOptions로 변경했습니다.
  • 추가됨:
    • IsThirdPartyAuthError()
    • IsQuotaExceeded()
    • IsSenderIDMismatch()
    • IsUnregistered()
    • IsUnavailable()
  • 지원 중단됨:
    • IsInvalidAPNSCredentials()
    • IsMessageRateExceeded()
    • IsMismatchedCredential()
    • IsRegistrationTokenNotRegistered()
    • IsServerUnavailable()
    • IsTooManyTopics()
    • IsUnknown()

IID API 변경사항

현재 iid 패키지에 제공되는 모든 오류 처리 함수는 지원 중단되었습니다. 대신 errorutils 패키지에 제공되는 해당 오류 처리 함수를 사용하세요.