【ITニュース解説】My Journey with Firebase Authentication
2025年09月04日に「Dev.to」が公開したITニュース「My Journey with Firebase Authentication」について初心者にもわかりやすいように丁寧に解説しています。
ITニュース概要
Firebase Authentication導入の経験談。最初は難しく感じたが、実際に触ってみると基本はシンプルだと気づいた。Firebaseにはロール機能がないため、カスタムクレームやFirestoreで管理する必要がある。ログイン処理のサンプルコードも紹介。恐れずに飛び込み、試行錯誤することで দ্রুত 学習できる。
ITニュース解説
この記事は、Firebase AuthenticationというFirebaseの機能を使って、実際にアプリケーションの認証システムを構築した経験について語られている。特に、Firebaseを初めて使う人がつまずきやすいポイントや、そこから得られる教訓がまとめられているため、システムエンジニアを目指す初心者にとって非常に参考になる内容だ。
まず、Firebase Authenticationとは、ウェブアプリケーションやモバイルアプリケーションにユーザー認証機能を簡単に追加できるサービスのことだ。ユーザー認証とは、ユーザーが本人であることを確認するプロセスで、例えば、メールアドレスとパスワードでログインしたり、GoogleやFacebookなどのアカウントを使ってログインしたりする機能のことだ。通常、これらの機能を自分で実装しようとすると、セキュリティやデータベース管理など、多くの複雑な作業が必要になる。しかし、Firebase Authenticationを使えば、これらの作業を大幅に簡略化できる。
記事の筆者は、Firebaseを初めて使う際に、その多機能さに圧倒されたという。Firebaseは、データベース、ストレージ、ホスティングなど、さまざまな機能を提供しているため、最初はどこから手を付けていいのか迷ってしまうかもしれない。しかし、記事では、恐れずに飛び込んで、実際に使ってみることが重要だと述べられている。
記事の中で特に重要なポイントは、Firebase Authenticationには、ユーザーの役割(ロール)を管理する機能が標準で備わっていないということだ。例えば、管理者(admin)ユーザーと一般ユーザーを区別したい場合、追加の工夫が必要になる。記事では、そのための方法として、カスタムクレームを使うか、FirestoreというFirebaseのデータベースにユーザーの役割を保存する方法が紹介されている。
カスタムクレームとは、ユーザーの情報に独自の属性を追加できる機能のことだ。例えば、ユーザーが管理者かどうかを示す「isAdmin」という属性を追加できる。この属性を使って、アプリケーション内でユーザーの権限をチェックすることで、管理者だけがアクセスできる機能を実装できる。
Firestoreに役割を保存する方法は、ユーザーIDをキーとして、そのユーザーの役割をFirestoreのドキュメントに保存するというものだ。アプリケーション内でユーザーの役割を確認する際には、Firestoreからその情報を取得する。
記事では、Firebaseを使ってユーザーをログインさせるためのサンプルコードが紹介されている。このコードはJavaScriptで書かれており、Firebaseの初期化処理、認証オブジェクトの取得、メールアドレスとパスワードを使ったログイン処理が含まれている。
1import { initializeApp } from "firebase/app"; 2import { getAuth, signInWithEmailAndPassword } from "firebase/auth"; 3 4const firebaseConfig = { 5 apiKey: "YOUR_API_KEY", 6 authDomain: "your-app.firebaseapp.com", 7 projectId: "your-app", 8 storageBucket: "your-app.appspot.com", 9 messagingSenderId: "SENDER_ID", 10 appId: "APP_ID" 11}; 12 13// Initialize Firebase 14const app = initializeApp(firebaseConfig); 15const auth = getAuth(app); 16 17// Example login 18signInWithEmailAndPassword(auth, "user@example.com", "password123") 19 .then(userCredential => { 20 console.log("Logged in:", userCredential.user); 21 }) 22 .catch(error => { 23 console.error("Error:", error.message); 24 });
このコードは、まずinitializeApp関数を使ってFirebaseを初期化する。firebaseConfigオブジェクトには、Firebaseプロジェクトの設定情報(APIキー、認証ドメイン、プロジェクトIDなど)が含まれている。次に、getAuth関数を使って認証オブジェクトを取得する。そして、signInWithEmailAndPassword関数を使って、指定されたメールアドレスとパスワードでユーザーをログインさせる。ログインに成功すると、thenメソッドが実行され、ユーザーの情報がコンソールに表示される。ログインに失敗すると、catchメソッドが実行され、エラーメッセージがコンソールに表示される。
記事の最後に、筆者は、Firebaseを使うことを恐れずに、積極的に試してみることが重要だと述べている。実際にコードを書いて、エラーを経験することで、より深く理解できると強調している。
システムエンジニアを目指す初心者は、この記事を参考に、Firebase Authenticationを使って簡単なアプリケーションを作ってみることをお勧めする。実際に手を動かすことで、Firebaseの基本的な使い方や、認証システムの構築に必要な知識を習得できるはずだ。最初は難しいと感じるかもしれないが、一つずつステップを踏んでいけば、必ず理解できるようになる。