2016-05-25 12 views
2

私はノートパソコンを使いましたが、FireFireで使用したいすべての機能を私に与えてくれなかったので、polymerfireの代わりにjavascriptを使用することを選択しました。ポリマーの複数のコンポーネントでFirebaseアプリを初期化するのは間違っていますか?

私は、ユーザーがログインする責任だが、私は私のアプリのページを表し、他のコンポーネントでの認証のステータスを追跡するために必要な認証コンポーネントのコード

var config = { 
    apiKey: '<your-api-key>', 
    authDomain: '<your-auth-domain>', 
    databaseURL: '<your-database-url>', 
    storageBucket: '<your-storage-bucket>' 
}; 
firebase.initializeApp(config); 

を使用しています。グローバルにアプリを初期化する方法があるのか​​、すべてのページでアプリの初期化を繰り返すのが最善の選択か分かりません。私が今やっていることは、ルーティングによって初期化できるすべてのページのコンポーネントの準備関数でアプリを初期化することです。

答えて

1

ポリマーの方法は、firebase.initializeAppによって返されたアプリケーションを公開するコンポーネントを作成することだと思います。

私は、サーバー側のユニットテストで使用していたハックの方法は、アプリを取得しようとすることですし、それが失敗した場合、私はそれを初期化:

var app; 
try { 
    app = firebase.app(); 
} 
catch(e) { 
    app = firebase.initializeApp(...); 
} 
+0

私は、FirebaseのAPIのように動作するようにコンポーネントを作成すると便利ですが、javascript APIがすでに動作し、firebase.initializeAppをカプセル化するだけのコンポーネントを作成するのは愚かではないとは不要です。 –

+1

私はあなたに同意します、それは私が本当に好きではないコンポーネントアプローチの一部です...私のAngularアプリケーションとノードアプリケーションでは、firebaseアプリケーションインスタンスをカプセル化し、 'Database'クラスを作成し、データベースはシングルトンをスローします(また、そこに便利な関数を追加します)。 –

0

uはtypescriptですを使用している場合は、あなたが保つことができますシングルトンパターンを使用してクラス内で認証します。そうすれば、共有されるオブジェクトは1つだけです。

for javascript - typescriptファイルから生成されたjsを使用します。

+0

ここでシングルトンパターンの例を挙げませんか?あなたの答えはより関連性があります... :) – Badacadabra

関連する問題