Я пытаюсь выполнить базовую операцию CRUD в firebase через Angular 6 и Typescript.Я использую Webpack, чтобы связать это.Когда приложение запускается, никаких ошибок не выдается, но в тот момент, когда я пытаюсь сохранить в базе данных реального времени firebase, я сталкиваюсь с «Как исправить» TypeError: конструкторы класса должны вызываться с | new | "".
Я впервые работаю с firebase и angularfire2.Ссылаясь на реализацию CRUD в официальной документации Angularfire2, я не вижу существенной разницы с тем, что я сделал.Я также пытался переключить браузеры с Mozilla на Chrome, но проблема, похоже, не связана с браузером.Интересно, это как-то связано с rxjs, но я уже запустил $npm install rxjs-compat
Это тоже не исправило!
user.service.ts
import { AngularFireDatabase, FirebaseObjectObservable} from 'angularfire2/database';
import { Injectable } from '@angular/core';
import * as firebase from 'firebase';
import { AppUser } from './models/app-user';
@Injectable({
providedIn: 'root'
})
export class UserService {
constructor(private db: AngularFireDatabase) {}
save(user: firebase.User) {
this.db.object('/users/' + user.uid).update({
name: user.displayName,
email: user.email
})
.catch(error => console.log(error));
}
get(uid:string): FirebaseObjectObservable<AppUser>{
return this.db.object('/users/' + uid);
}
}
app.component.ts
import { UserService } from './user.service';
import { Router } from '@angular/router';
import { AuthService } from './auth.service';
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
constructor(private userService: UserService, private auth: AuthService, router: Router){
auth.user$.subscribe(user => {
if (user) {
userService.save(user);
let returnUrl = localStorage.getItem('returnUrl');
router.navigateByUrl(returnUrl);
}
});
}
}
Ожидаемый результат: функция сохранения (пользовательская) для обновления информации в базе данных реального времени firebase и последующего перенаправления на предыдущую страницу.
Фактический результат: при входе в систему, вы перенаправлены обратно на страницу входа в систему, обновление базы данных отсутствует, и выдается следующая ошибка:
