バージョン 4.0.0 以降、Firebase Admin SDK for 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.14.1
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 以降)をフェッチします。
一般的なエラー処理の変更点
v4 SDK には、プラットフォーム レベルのエラー状態を処理する関数を提供する、新しい errorutils
パッケージが導入されています。バックエンド サービスエラーが原因でエラーが発生した場合、新しい関数 errorutils.HTTPResponse()
を呼び出すことで、元のエラー レスポンスにアクセスできます。このパッケージの関数は、SDK 内の任意の API から返されたエラーと一緒に使用できます。
Authentication API の変更点
VerifyIDToken()
API と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
パッケージの対応するエラー処理関数を使用してください。