7
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Firebase Admin SDKのない言語でユーザ管理操作をする

Last updated at Posted at 2017-05-15

自己責任でお願いします。

Firebase Admin SDK Auth API

Firebaseの認証機構は非常に便利ですよね。この認証情報にサーバサイドからアクセスするにはAdmin SDKを使います。

しかし、このAdmin SDKはNode.jsとJavaしか提供されていない上、2017/5/16現在、Admin User Management APIはFirebase Admin Node.js SDKでしか利用できません。

例えば、サーバ側でFirebaseにアカウントを作成・削除したり、カスタム認証を使用している場合にリクエストで受け取ったUIDのプロバイダ情報にアクセスしたいような場合、SDKがないと困ってしまいます。

Node.jsでサーバを書いていればいいですが、Javaで書くことも多いでしょうし、PythonやGo言語とかで書きたいこともあるでしょう。

Firebaseの認証機構はGoogle IdentityToolKitとの統合を図っており、IdentityToolKitのREST APIを使うことでAdmin SDKのない環境でもデータを取得することができます。

APIリファレンス:https://developers.google.com/identity/toolkit/web/reference/relyingparty

例えば、ユーザのアカウント情報をFirebase UIDから引きたい場合は、https://www.googleapis.com/identitytoolkit/v3/relyingparty/getAccountInfoにそのままUIDを渡せば大丈夫です。

リファレンス:https://developers.google.com/identity/toolkit/web/reference/relyingparty/getAccountInfo

APIの引数にトークンとありますが、サービスアカウントの場合はシークレットトークンから生成できます。

identitytoolkitはJavaやGoを始めとして多くの言語に対応した公式のSDKがあるので、そちらを使うことも出来ます。

公式リファレンスのトップに大きく書かれているように、将来的にはFirebaseに統合される事となると思います。Firebase Admin SDKが整備されたらそちらを使いましょう。どうしても急ぎでこれらを使う場合は、抽象化したラッパーをかませるように設計しておくことをおすすめします。

7
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?