@dev.arlamend7/angular-fire v1.2.1
AngularFire
Biblioteca gerada a partir do Angular CLI versão 8.2.14.
Biblioteca resumidamente é um simplificador do mapeamento com o banco do angularFire2 a paritr de uma classe.
Para a facil implementeação necessita de ter criado o aplicativo no Firebase
Npm Package
import { Observable } from 'rxjs';
import { firestore } from 'firebase';
export declare class FireStoreBase<T> {
private FireStore;
ColletionName: string;
Colletion: firestore.CollectionReference;
constructor(FireStore: firestore.Firestore);
SetColletion(colletionName: string): void;
Object(id: string): firestore.DocumentReference<firestore.DocumentData>;
mapForQuery(actions: firestore.QuerySnapshot<firestore.DocumentData>): T[];
GetAll(): Observable<T[]>;
Get(id: string): Observable<T>;
Insert(data: T): Observable<T>;
Update(data: T, id: string): Observable<void>;
Delete(id: string): Observable<void>;
SimpleQuery(field: string, options: firebase.firestore.WhereFilterOp, value: any): Observable<T[]>;
}
import { storage } from 'firebase';
import { StorageData } from '../models/storage-data';
export declare class FireStorageService {
Storage: storage.Storage;
constructor(Storage: storage.Storage);
Save(path: String, file: File): storage.UploadTask;
GetInitPath(): Promise<storage.ListResult>;
GetPath(path: string): Promise<storage.ListResult>;
Get(fullPath: string): StorageData;
}
E para o Fire Auth
import { auth } from "firebase";
export declare class FireAuthService {
private angularFireAuth;
user: firebase.auth.UserCredential;
constructor(angularFireAuth: auth.Auth);
CreateUser(email: string, password: string): import("rxjs").Observable<auth.UserCredential>;
Login(email: string, password: string): import("rxjs").Observable<auth.UserCredential>;
Logout(): import("rxjs").Observable<void>;
LogAnonymously(): import("rxjs").Observable<auth.UserCredential>;
LoginWithGoogle(provider?: firebase.auth.GoogleAuthProvider): import("rxjs").Observable<auth.UserCredential>;
LoginWithTwitter(provider?: firebase.auth.TwitterAuthProvider): import("rxjs").Observable<auth.UserCredential>;
LoginWithGitHub(provider?: firebase.auth.GoogleAuthProvider): import("rxjs").Observable<auth.UserCredential>;
LoginWithFacebook(provider?: firebase.auth.GoogleAuthProvider): import("rxjs").Observable<auth.UserCredential>;
LoginWithAnySocial(provider: firebase.auth.AuthProvider): import("rxjs").Observable<auth.UserCredential>;
}
inicializar o projeto normalmente com Projeto Firebase
Como usar
npm i angularfire2
npm i firebase
@NgModule({
declarations:[
CoreComponent
],
imports:[
BrowserModule,
CoreRoutingModule,
AngularFireModule.initializeApp(environment.FireBaseConfig), //Obrigatorio
AngularFirestoreModule, // Só vou usar este no momento
AngularFireModule, //Obrigatorio
AngularFireDatabaseModule,
AngularFireStorageModule,
SharedModule,
],
exports: [CommonModule,FormsModule],
providers:[],
bootstrap: [CoreComponent]
})
export class CoreModule{}
e após isto so manipular seu banco!
Primeiro (Principal) criamos uma classe
export class Comentario {
id:string; //este será retornado do banco e somente com esta nomeclatura "id"
User_id:string
Conteudo:string;
date:number;
UserNome:string;
UserFoto : string;
Publicacao_Id : string;
constructor(publicacao_id:string,conteudo:string,user:Usuario){
this.Conteudo = conteudo;
this.User_id = user.id;
this.date = new Date().valueOf();
this.UserNome = user.Nome;
this.UserFoto = user.UrlFoto;
this.Publicacao_Id = publicacao_id
}
}
No meu caso Criei um Service utilizando extends
Service
import { FireStoreService } from '@dev.arlamend7/angular-fire';
import { AngularFirestore } from 'angularfire2/firestore';
@Injectable({providedIn : "root"})
export class ComentarioService extends FireStoreService<Comentario>{
constructor(public Store : AngularFirestore){
super(Store)
this.SetColletion("Comentario");
}
TrazerComentarios(publicacao_id:string){
return this.Query("Publicacao_Id","==",publicacao_id)
}
}
E utilizei normalmente em seus Components
constructor(private comentarioService:ComentarioService){}
ngOnInit(): void {
this.comentarioService.TrazerComentarios(this.Publicacao.id).subscribe(comentarios =>{
this.Comentarios = comentarios;
this.OnChange();
})
}
adicionarComentario(){
let comentario = new Comentario(this.Publicacao.id,this.novoComentario,this.User);
this.comentarioService.Insert(comentario).subscribe(comentario => {
this.Comentarios.push(comentario);
this.OnChange();
})
}
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago