Crear registros con Firebase y Angular [07]
En este tutorial vamos a crear registros con Firebase y Angular siguiendo estos pasos:
- Instalar plugin Bootstrap 4 Snipets.
- Agregar registros en nuestra base de datos a través de nuestra aplicación.
Codigo en git: https://github.com/programadornovato/ngFirebase/commit/7c858b5ec093ab069ef1997607364ca84e9bf59a
src/app/app.module.ts
import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import {FormsModule} from '@angular/forms'; import { AppRoutingModule } from './app-routing.module'; import { AppComponent } from './app.component'; import { AngularFireModule } from '@angular/fire'; import { environment } from '../environments/environment'; import { AngularFireAnalyticsModule } from '@angular/fire/analytics'; import { AngularFirestoreModule } from '@angular/fire/firestore'; import { ListaComponent } from './components/lista/lista.component'; import { AgregaComponent } from './components/agrega/agrega.component'; @NgModule({ declarations: [ AppComponent, ListaComponent, AgregaComponent ], imports: [ BrowserModule, AppRoutingModule, AngularFireModule.initializeApp(environment.firebase), AngularFireAnalyticsModule, AngularFirestoreModule, FormsModule ], providers: [], bootstrap: [AppComponent] }) export class AppModule { }
src/app/components/agrega/agrega.component.html
<form (ngSubmit)="agregar()" > <div class="form-group"> <label for="">Nombre</label> <input type="text" class="form-control" name="name" [(ngModel)]="item.name" > <button type="submit" class="btn btn-primary">Agregar</button> </div> </form>
src/app/components/agrega/agrega.component.ts
import { Component, OnInit } from '@angular/core'; import { ConService } from 'src/app/services/con.service'; @Component({ selector: 'app-agrega', templateUrl: './agrega.component.html', styleUrls: ['./agrega.component.css'] }) export class AgregaComponent implements OnInit { item:any={name:''}; constructor(private ser:ConService) { } ngOnInit(): void { } agregar(){ this.ser.addItem(this.item); } }
src/app/services/con.service.ts
import { Injectable } from '@angular/core'; import { AngularFirestore, AngularFirestoreCollection } from '@angular/fire/firestore'; import { Observable } from 'rxjs'; import { map } from 'rxjs/operators'; export interface Item { name: string; } @Injectable({ providedIn: 'root' }) export class ConService { private itemsCollection: AngularFirestoreCollection<Item>; items: Observable<Item[]>; constructor(private afs: AngularFirestore) { this.itemsCollection = afs.collection<Item>('items'); this.items = this.itemsCollection.snapshotChanges().pipe( map(actions => actions.map(a => { const data = a.payload.doc.data() as Item; const id = a.payload.doc.id; return { id, ...data }; })) ); } retornaItems(){ return this.items; } addItem(item: Item) { this.itemsCollection.add(item); } }
🔗Fontawesome: https://fontawesome.com/v4.7.0/
🔗Puging de angular: https://marketplace.visualstudio.com/items?itemName=johnpapa.Angular2
🔗 Documentacion de angularfire: https://github.com/angular/angularfire/blob/master/docs/firestore/collections.md
🔗Puging de angular: https://marketplace.visualstudio.com/items?itemName=johnpapa.Angular2
🔗 Documentacion de angularfire: https://github.com/angular/angularfire/blob/master/docs/firestore/collections.md
🎦[Curso] Bootstrap de 0 a 100 🌈: https://www.youtube.com/playlist?list=PLCTD_CpMeEKSVmsZJIumVvfDviuW-c9AT
🎦[Curso] Firebase🔥de 0 a 100: https://www.youtube.com/playlist?list=PLCTD_CpMeEKQqPh6eKk7_Q-ugWyhO6SKT
🎦[Curso] Angular js 🔺[De 0 a 100]: https://www.youtube.com/playlist?list=PLCTD_CpMeEKRbxrnw-tAq6tG-NIUNu9sG
🎦[Curso] SASS de 0 a 100 🌈: https://www.youtube.com/playlist?list=PLCTD_CpMeEKQXywJB8KMN_-GccZuVf9ag
🎦[Curso] LESS de 0 a 100 🌈: https://www.youtube.com/playlist?list=PLCTD_CpMeEKT70itw70uVs0vlFbvbCPQN
🔗 Pagina de angular: https://cli.angular.io/
🔗 Pagina de nodejs: https://nodejs.org/en/
🔗 Pagina de typescrip: https://www.typescriptlang.org/
🔗 Pagina oficial: https://www.programadornovato.com
🔗 Facebook: https://facebook.com/ProgramadorNovatoOficial
🔗 Twitter: https://twitter.com/programadornova
🔗 Linkedin: https://www.linkedin.com/in/programadornovato/
🔗 Instagram: https://www.instagram.com/programadornovato/
<<Anterior tutorial Siguiente tutorial >>
Ave que vuela, a la cazuela.