Firebase Admin SDK for Go のご紹介
2017年9月28日木曜日
この記事は Hiranya Jayathilaka、ソフトウェア エンジニアによる The Firebase Blog の記事 "Introducing Firebase Admin SDK for Go" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
このたび、Firebase Admin SDK for Go が一般公開されました。拡大し続けている Admin SDK ファミリーにはすでに Java、Python、Node.js のサポートが含まれており、今回 4 つ目のプログラミング言語として新たに Go が加わりました。アプリのデベロッパーが Firebase Admin SDK を使うと、信頼された環境からプログラムを介して Firebase サービスにアクセスできるようになります。Firebase Admin SDK は、エンドユーザーがウェブブラウザやモバイル端末から Firebase にアクセスできるようにする Firebase クライアント SDK を補完するものです。Firebase Admin SDK for Go の最初のリリースでは、Firebase Authentication 機能のうち、カスタム トークン作成と ID トークン検証の機能がサポートされます。
Google App Engine や Google Compute Engine などの Google のインフラ上でコードを実行している場合、SDK は環境からアプリのデフォルト認証情報を自動検出します。その場合、Go Admin SDK を初期化する際に明示的に認証情報を指定する必要はありません。
作成されたカスタム トークンをクライアント端末に送信すると、Firebase クライアント SDK を使った認証フローを行うことができます。また、ID トークンの検証により、サーバー上で現在アプリにログインしているユーザーを確実に特定できるようになります。
Firebase Admin SDK for Go の詳しい使用方法については、Admin SDK セットアップ ガイドをご覧ください。
Reviewed by Khanh LeViet - Developer Relations Team
このたび、Firebase Admin SDK for Go が一般公開されました。拡大し続けている Admin SDK ファミリーにはすでに Java、Python、Node.js のサポートが含まれており、今回 4 つ目のプログラミング言語として新たに Go が加わりました。アプリのデベロッパーが Firebase Admin SDK を使うと、信頼された環境からプログラムを介して Firebase サービスにアクセスできるようになります。Firebase Admin SDK は、エンドユーザーがウェブブラウザやモバイル端末から Firebase にアクセスできるようにする Firebase クライアント SDK を補完するものです。Firebase Admin SDK for Go の最初のリリースでは、Firebase Authentication 機能のうち、カスタム トークン作成と ID トークン検証の機能がサポートされます。
Firebase Admin SDK for Go の初期化
他の Firebase Admin SDK と同様に、Go Admin SDK もさまざまな認証方法やクライアント オプションを使って初期化できます。次のコード スニペットは、Firebase Console または Google Cloud Console で取得したサービス アカウント認証情報を使って SDK を初期化する方法を示しています。import (
"golang.org/x/net/context"
firebase "firebase.google.com/go"
"google.golang.org/api/option"
)
opt := option.WithCredentialsFile("path/to/key.json")
app, err := firebase.NewApp(context.Background(), nil, opt)
Google App Engine や Google Compute Engine などの Google のインフラ上でコードを実行している場合、SDK は環境からアプリのデフォルト認証情報を自動検出します。その場合、Go Admin SDK を初期化する際に明示的に認証情報を指定する必要はありません。
import ( "golang.org/x/net/context" firebase "firebase.google.com/go" ) app, err := firebase.NewApp(context.Background(), nil)
カスタム トークンの作成と ID トークンの確認
Firebase Admin SDK for Go の最初のリリースでは、カスタム トークンの作成と Firebase ID トークンの検証機能がサポートされています。カスタム トークンを作成すると、独自のユーザーストアや認証メカニズムを使ってユーザー認証を行えるようになります。client, err := app.Auth()
if err != nil {
return err
}
claims := map[string]interface{}{
"premium": true,
"package": "gold",
}
token, err := client.CustomToken("some-uid", claims)
作成されたカスタム トークンをクライアント端末に送信すると、Firebase クライアント SDK を使った認証フローを行うことができます。また、ID トークンの検証により、サーバー上で現在アプリにログインしているユーザーを確実に特定できるようになります。
client, err := app.Auth()
if err != nil {
return err
}
decoded, err := client.VerifyIDToken(idToken)
uid := decoded.UID
Firebase Admin SDK for Go の詳しい使用方法については、Admin SDK セットアップ ガイドをご覧ください。
次のステップ
Go Admin SDK の機能は今後さらに強化され、ユーザー管理や Firebase Cloud Messaging など、他にも有用な API が実装される予定です。また、この SDK は、オープンソースです。そのため、Github レポジトリをご覧いただいたり、問題の報告やプル リクエストの送信によって開発プロセスに参加していただくことは大歓迎です。Golang gopher の皆さん、ぜひ Firebase のコーディングをお楽しみください。Reviewed by Khanh LeViet - Developer Relations Team