5

AngularFire2でパスワードリセット・パスワード忘れ機能を実装したいです。関数 sendPasswordResetEmail が AngularFire2 によってまだ提供されていないか、タイピングが更新されていないようです。sendPasswordResetEmail は AngularFireAuth の一部であるため、次のように関数にアクセスできると思いました。

(this.af.auth as any).sendPasswordResetEmail('email').
        then((result: any) => {
            console.log('Result:', result);
        }).catch((err: any) => {
            console.log('Err:', err);
        });

タイプスクリプトは私にこのエラーを与えます:

error TS2349: Cannot invoke an expression whose type lacks a call signature.

私はtypescript + angular2が初めてなので、sendPasswordResetEmailにアクセスする方法を教えてください。私の推測では、firebase が提供する純粋な js SDK にアクセスする必要がありますが、その方法がわかりません。

ありがとう。

4

1 に答える 1

6

FirebaseApp以下に示すように、コンポーネント コンストラクターに注入することで、AngularFire2 SDK の既存の完全に実装されていない機能を使用できる場合があります。sendPasswordResetEmailこれにより、メソッドにアクセスできるようになります。

import { Component, Inject } from '@angular/core';
import { AngularFire, FirebaseApp } from 'angularfire2';

@Component({
   selector: 'app-forgot-password',
   template: '...'
})
export class ForgotPasswordComponent {
  private auth: any;
  constructor(private af : AngularFire, @Inject(FirebaseApp) fa : any) {
    this.auth = fa.auth();
  }

  onSubmit() {
    this.auth.sendPasswordResetEmail(this.user.email)
        .then( resp => console.log('sent!') )
        .catch( error => console.log('failed to send', error) );
  }
}

FirebaseApp今のところasのインスタンスを宣言する必要があることに注意してくださいany

于 2016-12-26T03:19:18.297 に答える