Angular での Firebase 認証
Firebase は、アプリで認証をセットアップする簡単な方法を提供します。ここでは、AngularFire2 ライブラリを使用して、Angular 2 アプリケーションの簡単な電子メール/パスワードの登録と認証のワークフローをセットアップする方法を検討します。
最初のステップは、新しい Firebase プロジェクトを作成し、Firebase コンソールの [認証] セクションでメール/パスワードによるログイン方法を有効にすることです。
npm を使用して必要なパッケージのインストールを開始しましょう。これにより、Firebase SDK、AngularFire2、Promise-polyfill の依存関係がプロジェクトに追加されます。
$ npm install firebase angularfire2 --save
$ npm install promise-polyfill --save-exact
次に、Firebase API とプロジェクトの認証情報をプロジェクトの環境変数に追加しましょう。 [Web アプリに Firebase を追加] をクリックすると、Firebase コンソールで次の値を見つけることができます:
src/environments/environment.ts
export const environment = { production: false, firebase: { apiKey: 'XXXXXXXXXXX', authDomain: 'XXXXXXXXXXX', databaseURL: 'XXXXXXXXXXX', projectId: 'XXXXXXXXXXX', storageBucket: 'XXXXXXXXXXX', messagingSenderId: 'XXXXXXXXXXX' }};
次に、 AngularFireModule と AngularFireAuthModule を使用してアプリ モジュールを構成します。 AuthService をインポートして提供していることにも注意してください。次にサービスを作成します:
app.module.ts
// ... import { AngularFireModule } from 'angularfire2'; import { environment } from '../environments/environment'; import { AngularFireAuthModule } from 'angularfire2/auth'; import { AuthService } from './auth.service'; @NgModule({ declarations: [ AppComponent ], imports: [ // ... AngularFireModule.initializeApp(environment.firebase), AngularFireAuthModule ], providers: [AuthService], bootstrap: [AppComponent] }) export class AppModule { }
認証サービスの作成
私たちのサービスユーザーのログイン、登録、ログアウトを可能にする中心的な場所であるため、これら 3 つのアクションのメソッドを定義します。すべての認証ロジックがサービス内にあるため、認証ロジックを実装する必要のないコンポーネントを作成でき、コンポーネントをシンプルに保つことができます。
このコマンドを使用すると、Angular CLI を使用してサービスのフレームワークを作成できます:
$ ng g s auth
これは、AngularFireAuth を利用したサービスの実装です:
auth.service.ts
import { Injectable } from '@angular/core'; import { AngularFireAuth } from 'angularfire2/auth'; import * as firebase from 'firebase/app'; import { Observable } from 'rxjs/Observable'; @Injectable() export class AuthService { user: Observable<firebase.User>; constructor(private firebaseAuth: AngularFireAuth) { this.user = firebaseAuth.authState; } signup(email: string, password: string) { this.firebaseAuth .auth .createUserWithEmailAndPassword(email, password) .then(value => { console.log('Success!', value); }) .catch(err => { console.log('Something went wrong:',err.message); }); } login(email: string, password: string) { this.firebaseAuth .auth .signInWithEmailAndPassword(email, password) .then(value => { console.log('Nice, it worked!'); }) .catch(err => { console.log('Something went wrong:',err.message); }); } logout() { this.firebaseAuth .auth .signOut(); } }
AngularFireAuth.auth で利用可能なメソッドはすべて Promise を返すので、then と catch を使用して成功とエラーのステータスをそれぞれ処理できることがわかります。
電子メール/パスワード認証を設定しているため、ここでは createUserWithEmailAndPassword と signedInWithEmailAndPassword を使用していますが、Twitter、Facebook、または Google 経由での認証にも同じ方法を使用できます。
コンポーネント クラスとテンプレート
認証サービスが配置されたので、ログイン、登録、またはログアウトを可能にするコンポーネントの作成は非常に簡単です。
app.component.ts
import { Component } from '@angular/core'; import { AuthService } from './auth.service'; @Component({ ... }) export class AppComponent { email: string; password: string; constructor(public authService: AuthService) {} signup() { this.authService.signup(this.email, this.password); this.email = this.password = ''; } login() { this.authService.login(this.email, this.password); this.email = this.password = ''; } logout() { this.authService.logout(); } }
コンポーネントのコンストラクターにサービスを挿入し、認証サービスで同等のメソッドを呼び出すローカル メソッドを定義します。テンプレートから直接サービス プロパティにもアクセスできるように、private ではなく public キーワードを使用してサービスに焦点を当てます。
テンプレートは非常に単純で、authService のユーザー オブジェクトで非同期パイプを使用して、ログインしているユーザーがいるかどうかを判断します:
app.component.html
<h1 *ngIf="authService.user | async">Welcome {{ (authService.user | async)?.email }}!</h1> <div *ngIf="!(authService.user | async)"> <input type="text" [(ngModel)]="email" placeholder="email"> <input type="password" [(ngModel)]="password" placeholder="email"> <button (click)="signup()" [disabled]="!email || !password"> Signup </button> <button (click)="login()" [disabled]="!email || !password"> Login </button> </div> <button (click)="logout()" *ngIf="authService.user | async"> Logout </button>
入力フィールドは、フレームワーク構文の ngModel とバナナを使用して、コンポーネント クラスの電子メールとパスワードの値に双方向にバインドされています。 ######仕上げる! Firebase Authentication を使用してアプリに認証を追加するのはとても簡単です。
以上がAngular での Firebase 認証の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









記事では、JavaScriptライブラリの作成、公開、および維持について説明し、計画、開発、テスト、ドキュメント、およびプロモーション戦略に焦点を当てています。

この記事では、ブラウザでJavaScriptのパフォーマンスを最適化するための戦略について説明し、実行時間の短縮、ページの負荷速度への影響を最小限に抑えることに焦点を当てています。

フロントエンドのサーマルペーパーチケット印刷のためのよくある質問とソリューションフロントエンド開発におけるチケット印刷は、一般的な要件です。しかし、多くの開発者が実装しています...

この記事では、ブラウザ開発者ツールを使用した効果的なJavaScriptデバッグについて説明し、ブレークポイントの設定、コンソールの使用、パフォーマンスの分析に焦点を当てています。

スキルや業界のニーズに応じて、PythonおよびJavaScript開発者には絶対的な給与はありません。 1. Pythonは、データサイエンスと機械学習でさらに支払われる場合があります。 2。JavaScriptは、フロントエンドとフルスタックの開発に大きな需要があり、その給与もかなりです。 3。影響要因には、経験、地理的位置、会社の規模、特定のスキルが含まれます。

この記事では、ソースマップを使用して、元のコードにマッピングすることにより、Minified JavaScriptをデバッグする方法について説明します。ソースマップの有効化、ブレークポイントの設定、Chrome DevtoolsやWebpackなどのツールの使用について説明します。

Console.log出力の違いの根本原因に関する詳細な議論。この記事では、Console.log関数の出力結果の違いをコードの一部で分析し、その背後にある理由を説明します。 �...

エントリーレベルのタイプスクリプトチュートリアルをマスターしたら、TypeScriptをサポートするIDEで独自のコードを作成し、JavaScriptにコンパイルできるはずです。このチュートリアルは、TypeScriptのさまざまなデータ型に飛び込みます。 JavaScriptには、NULL、未定義、ブール値、数字、文字列、シンボル(ES6によって導入)とオブジェクトの7つのデータ型があります。 TypeScriptはこれに基づいてより多くのタイプを定義し、このチュートリアルではすべてを詳細に説明します。 ヌルデータ型 JavaScriptのように、Typescriptのnull
