update firebase

This commit is contained in:
2021-05-21 11:28:56 +02:00
parent 7bf2a06b16
commit 80260df71f
7 changed files with 256 additions and 274 deletions

View File

@@ -1,7 +1,6 @@
import {Injectable} from '@angular/core';
import {AngularFirestore, AngularFirestoreCollection, AngularFirestoreDocument} from '@angular/fire/firestore';
import {Observable} from 'rxjs';
import {map} from 'rxjs/operators';
type CollectionPredicate<T> = string | AngularFirestoreCollection<T>;
type DocumentPredicate<T> = string | AngularFirestoreDocument<T>;
@@ -23,22 +22,11 @@ export class DbService {
}
public doc$<T>(ref: DocumentPredicate<T>): Observable<T> {
return this.doc(ref).snapshotChanges().pipe(
map(doc => {
const data = doc.payload.data();
const id = doc.payload.id;
return {...data, id} as T;
})
);
return this.doc(ref).valueChanges({idField: 'id'});
}
public col$<T>(ref: CollectionPredicate<T>, queryFn?): Observable<T[]> {
return this.col(ref, queryFn).snapshotChanges().pipe(
map(doc => doc.map(_ => {
const data = _.payload.doc.data();
const id = _.payload.doc.id;
return {...data, id} as T;
}))
);
return this.col(ref, queryFn).valueChanges({idField: 'id'});
}
}

View File

@@ -44,7 +44,7 @@ export class UserService {
}
public async login(user: string, password: string): Promise<any> {
const aUser = await this.afAuth.auth.signInWithEmailAndPassword(user, password);
const aUser = await this.afAuth.signInWithEmailAndPassword(user, password);
const dUser = await this.readUser(aUser.user.uid);
this._user$.next(dUser);
this._userId$.next(aUser.user.uid);
@@ -55,7 +55,7 @@ export class UserService {
public list$ = (): Observable<User[]> => this.db.col$('users');
public async logout(): Promise<any> {
await this.afAuth.auth.signOut();
await this.afAuth.signOut();
this._user$.next(null);
this._userId$.next(null);
}
@@ -66,11 +66,11 @@ export class UserService {
public async changePassword(user: string): Promise<any> {
const url = environment.url;
await this.afAuth.auth.sendPasswordResetEmail(user, {url});
await this.afAuth.sendPasswordResetEmail(user, {url});
}
public async createNewUser(user: string, name: string, password: string): Promise<any> {
const aUser = await this.afAuth.auth.createUserWithEmailAndPassword(user, password);
const aUser = await this.afAuth.createUserWithEmailAndPassword(user, password);
const userId = aUser.user.uid;
await this.db.doc('users/' + userId).set({name, chordMode: 'onlyFirst'});
const dUser = await this.readUser(aUser.user.uid);