答えて

8

実際にFirebaseUI(Web用)とAngularFire2の間に直接の統合はありません。

AngularFire2には、Firebase認証JavaScript SDKの下位レベルのサインイン機能と統合されたサインインプリミティブが組み込まれています。これらの詳細については、AngularFire2 documentation on user authenticationを参照してください。

しかし、AngularFire2とFirebaseUI-Webの両方がFirebase認証JavaScript SDKの上に構築されていることを考えれば、うまく機能するでしょう。 start a sign-in flow from FirebaseUIの場合は、末尾にSDKレベルのtrigger an onAuthStateChanged() eventが表示されます。つまり、onAuth()イベントを発生させるのはsame event that AngularFire2 listens toです。

+2

に苦しんでいるコンポーネント

@Component({ 'selector': 'app-signin', 'template': '', // Populated by 'fui_auth.start()' }) export class SigninComp { constructor(private user: UserService){} ngOnInit(){ // Show Firebase UI auth widget this.user.fui_auth.start('app-signin', {config...}}) } } 

でUIをレンダリングこれの本当の実施例は本当にいいだろう。 https://github.com/RaphaelJenni/FirebaseUIAngularIntegrationがありますが、それは私のためには機能しません。 FirebaseError:Firebase:No Firebase App '[DEFAULT]'を作成しました - Firebase App.initializeApp()(app/no-app)を呼び出してください。 ' – Splaktar

+1

'firebase.initializeApp(firebaseConfig)'への重複呼び出しが必要です'app.module.ts'で' AngularFireModule.initializeApp(firebaseConfig) 'を呼び出すことに加えて、 – Splaktar

2

はい、AngularFireとFirebaseUIは連携できます。サービス中のInit FirebaseUI(それは一度だけ起こるように):

1:あなたはする必要があり

import * as firebase from 'firebase/app' 

// Attach firebase to window so FirebaseUI can access it 
(<any>window).firebase = firebase 

// Import FirebaseUI standalone (as its npm.js file causes double firebase code) 
import 'firebaseui/dist/firebaseui' // Imports for side effects only 

// Declare `window.firebaseui` that the above import creates 
declare global { 
    const firebaseui 
} 

Why you can't just import * as firebaseui like you do with firebase

2インポートFirebaseUIと(例えば、ブートストラップ前に)それをfirebaseへのアクセス権を与えますAngularFireによって作成されたauthインスタンスに渡します。

constructor(private af_auth: AngularFireAuth){ 
    this.fui_auth = new firebaseui.auth.AuthUI(this.af_auth.auth) 
} 

3:そこもa module availableですが、それが現在this issue

関連する問題