2016-07-07 12 views
5

Tôi muốn thực hiện một mật khẩu đặt lại/quên mật khẩu chức năng với AngularFire2. Có vẻ như chức năng sendPasswordResetEmail chưa được AngularFire2 cung cấp hoặc các kiểu đánh máy không được cập nhật. Kể từ sendPasswordResetEmail là một phần của AngularFireAuth, tôi nghĩ rằng tôi vẫn có thể truy cập vào các chức năng như thế này:AngularFire 2 sendPasswordResetEmail

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

nguyên cảo mang lại cho tôi lỗi này:

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

Kể từ khi tôi mới đến nguyên cảo + angular2, bất kỳ gợi ý như thế nào Tôi có thể truy cập sendPasswordResetEmail? Đoán của tôi là tôi phải truy cập sdk tinh khiết js được cung cấp bởi firebase, nhưng tôi không biết làm thế nào.

Cảm ơn.

+0

Tôi có cùng một vấn đề. Tôi không nghĩ rằng angularfire 2.0.0 beta.2 như thế này được nêu ra. –

Trả lời

5

Bạn có thể sử dụng các chức năng hiện có nhưng không được triển khai đầy đủ của SDK AngularFire2 bằng cách chèn FirebaseApp vào hàm tạo thành phần của bạn như bên dưới. Điều này sẽ cung cấp cho bạn truy cập vào các phương pháp 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)); 
    } 
} 

Chú ý rằng bạn sẽ phải khai báo bạn thể hiện của FirebaseApp như any cho bây giờ.

+0

FYI, bạn có thể khai báo ứng dụng được tiêm dưới dạng 'firebase.app.App' - xem câu trả lời [this] (http://stackoverflow.com/a/39069813/6680611). – cartant

+0

Great @cartant! Cảm ơn. –

Các vấn đề liên quan