![Crear registros con Firebase y Angular [07] 1 07 3](https://www.programadornovato.com/wp-content/uploads/2020/06/07-3-535x251.jpg)
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.