0
0

FireBaseの認証機能を利用してサーバーサイドでユーザー操作をする

Last updated at Posted at 2023-11-01

FireBaseの認証機能を利用してサーバーサイドでユーザー操作をする

FireBaseでの認証を行い、登録されているユーザーに対して操作を行う時のFireBaseのモジュールの使用方法です。今回は使用した言語がPythonのため、Pythonでの書き方を中心に行います。

firebaseの認証機能を導入済みの方が対象です。

FireBaseの認証機能とは

Firebaseはクラウドベースのプラットフォームであり、ユーザーの認証やデータベースの管理など、さまざまな機能を提供しています。サーバーサイドでユーザー操作を行うためには、まずFirebaseの認証機能を設定する必要があります。

Firebaseの認証機能を使用することで、ユーザーを登録し、ログイン、ログアウトなどの操作を簡単に行うことができます。また、Firebaseのデータベースを使用することで、ユーザーの情報を保存し、必要なデータを取得することもできます。

Firebaseの認証機能を利用してサーバーサイドでユーザー操作を行うことで、安全かつ効率的なユーザー管理が可能となります。

FireBaseに用意されているモジュール

firebase_admin

主な使用方法

認証機能を使用してGoogleアカウントでの認証を行なったり、登録されたユーザーの確認、操作を行うことができます。

Firebaseの認証機能を利用すると、サーバーサイドでユーザー操作を行うことができます。

ユーザーの操作を行うにはUIDを使用した操作が求められます。

UIDを取得し、そのUIDを使用して該当ユーザーに対して操作を行います。

まずfirebase_admin モジュールをimportして、firebase_admin.initialize_app() でSDKを初期化してから使用します。

この時に複数回SDKの初期化を行おうとすると、エラーを吐くので注意してください

Firebase Admin の二重初期化エラーの対策(modular版)Zenn

firebaseに登録されているユーザー情報に対して操作を行う

firebaseのユーザーを特定するためにDBに対して一意のデータを取得する。

firebaseのユーザー検索で使用できるのは、電話番号(phoneNumber)、メールアドレス(email)、uidになります。firebaseのuidをDBに保存していない限り、phoneNumberかemailの二択になるかと思いますので、ここではemailを取得する方法で行います。

ちなみに、ユーザーに対しての操作でemailを使用することはできません。

例としてここではユーザーのemailを取得します

通常通りuserテーブルからemailを取得します

def get_user_email(user_id : int):
	user_email = db.query(User.email).filter(User.id == user_id).one()

取得したemailを使用して、firebaseに対してユーザー検索を行います。

from firebase_admin import auth

def get_user_by_email(user_email: string)
user = firebase_admin.auth.get_user_by_email(user_email)

この時、受け取る値としては

{
	uid: 該当ユーザーのuid,
	display_name: 該当ユーザーの氏名,
	email: 該当ユーザーのemail
}

が取得することができます

firebase_admin.auth.get_user_by_email() を使用して得たuidを使用してfirebaseのユーザー情報に対して操作を行います

使用例として削除処理を行います。

firebase_admin.auth.delete_user(uid) uidの部分に引数として上記で取得したuid

を渡してメソッドを実行します

そうするとfirebaseコンソールでユーザーの削除が行えているかと思います。

削除したくない方はfirebase_admin.auth.update_user(uid) で更新処理を試してみてください。

以上、firebaseでのユーザー操作でした。

0
0
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
0
0