Ошибка при попытке получить Observable.fromPromise для функции входа в Angularfire - PullRequest
0 голосов
/ 08 мая 2020

Я пытаюсь создать функцию входа в систему с помощью Angular и Firebase, где я получаю результат входа в систему как наблюдаемый из моей службы Auth в моем компоненте входа. Ниже приведена ошибка, которую я получаю.

ERROR in src/app/login/login.component.ts:28:6 - error ng6002: appears in the NgModule.imports of AppModule, but could not be resolved to an NgModule class.

Вот мой TS-файл компонента входа:

import { Component, OnInit } from '@angular/core';
import { FormBuilder, Validators, FormGroup } from '@angular/forms';
import { AuthService } from '../services/auth/auth.service';
import { Router } from '@angular/router';

@Component({
  selector: 'app-login',
  templateUrl: './login.component.html',
  styleUrls: ['./login.component.css']
})
export class LoginComponent implements OnInit {
  public form: FormGroup;
  constructor(private formBuilder: FormBuilder, private authService: AuthService, private router: Router) { 
    this.form = this.formBuilder.group( {
      email: ['', Validators.required],
      password: ['', Validators.required]
    });
  }

  ngOnInit(): void {
  }

  login() {
    const inputValue = this.form.value;
    console.log(inputValue.email, inputValue.password);

    this.authService.login(inputValue.email, inputValue.password)
    .subscribe(
      success => this.router.navigate(['/user/home']),
      error => alert(error)

    );
  }

Вот мой ts-файл службы аутентификации:

import { Injectable } from '@angular/core';
import { AngularFireAuth } from '@angular/fire/auth';
import { from as fromPromise, Observable} from 'rxjs';


@Injectable({
  providedIn: 'root'
})
export class AuthService {

  constructor(private afauth: AngularFireAuth) {

   }

   login(email, password): Observable<any> {
    return Observable.fromPromise(
      this.afauth.signInWithEmailAndPassword(email, password)
    );
  }

}

1 Ответ

0 голосов
/ 08 мая 2020

По-видимому, вы случайно поместили LoginComponent в массив imports в объявленном @NgModule. Переместите его в массив declarations.

@NgModule({
  imports: [/*LoginComponent*/], // <= move it from here
  declarations: [LoginCompoennt] // <= to here

  ...
})
export class AppModule {}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...