import { OnDestroy } from '@angular/core'; import { AngularFirestore, AngularFirestoreCollection } from '@angular/fire/firestore'; import { AngularFireDatabase } from '@angular/fire/database'; import { AngularFireAuth } from '@angular/fire/auth'; import { Observable } from 'rxjs'; import * as firebase from 'firebase/app'; import 'firebase/auth'; import { DebugService } from '../debug/debug.service'; /** * Firebase utilities service * Some help: https://github.com/angular/angularfire/blob/master/docs/rtdb/lists.md */ export declare class FirebaseService implements OnDestroy { private readonly firestore; private fireAuth; private debugService; private angularFireDatabase; /** Guarda la referencia a la base de datos principal */ private pageContentReference; /** Stream a la base de datos principal de donde obtenemos el contenido de nuestra página */ private pageContent$; /** Stream destroyer */ private unsubscriber$; constructor(firestore: AngularFirestore, fireAuth: AngularFireAuth, debugService: DebugService, angularFireDatabase: AngularFireDatabase); ngOnDestroy(): void; /** * Devuelve una referencia de tipo firestore collection a partir de un nombre * @param name */ getCollectionReference(name: string): AngularFirestoreCollection; /** * Establece el stream a la base de datos que proporciona el contenido principal de la aplicación * @param name */ setPageContentDatabase(name: string): void; /** Devuelve un observable al stream de cambios de la base de datos */ getPageContentAsObservable(): Observable; /** * Guarda en la base de datos principal de la aplicación un nuevo item * @param item Objecto a guardar en la base de datos */ addItem(item: any): Promise; /** * Update de un item en la base de datos principal de la aplicación * @param item */ updateItem(item: any): Promise; /** * Crea un nuevo usuario firebase a partir de su email y password * @param email * @param password */ createNewUser(email: string, password: string): Observable; /** Get current loged user token */ getFirebaseToken(): Promise; /** Get current loged user token */ getFirebaseUser(): Promise; /** Do the sign in call to firebase */ signinUser(email: string, password: string): Observable; /** Do the sign out call to firebase */ logoutUser(): Observable; getUserAsObservable(): Observable; doGoogleLogin(): Promise; }