Nelson Celis
Company_adminIvan Cardozo
Te amo , me salvaste de dejar el curso , mas gente como tu; porfavor reproducete !!! :v
Santiago Diaz
Muchísimas gracias por el aporte!
Nelson Celis
Company_adminIvan Cardozo
Te amo , me salvaste de dejar el curso , mas gente como tu; porfavor reproducete !!! :v
Santiago Diaz
Muchísimas gracias por el aporte!
Esteban José Pagano
esta expicación esta deprecada, creia que el curso estaba actaulizado. afb.database no se usa mas en angularfire2
Luis Rocha
Que se usa actualmente?
estoy tratando de implementar un CRUD
Andrés Felipe Chaparro Grimaldo
Luis Rodolfo Lara Espinoza
A mi funciono de la siguiente manera con la documentación actualizada:
Matias Cabido
eso lo pudiste hacer, porque ya tenias previamente creado en Firebase el arreglo de lugares verdad??
Nicolas Schimpf
Genio! Muchas Gracias
Mariano Villarreal
Guía Rápida Actualizada
Instalar Firebase en Angular
Uso en Component
Eduardo de la Cruz Ibarra
ProfesorExcelente, muchas gracias por el aporte!
Jhon Alexander Vega Martínez
2018 y sigue funcionando como lo explica en el vídeo 😄, si tienen duda es Realtime Database en Firebase de resto en el código es todo igual, tienen que asegurarse que en el vídeo anterior les compile el proyecto sin errores, si no esto no les funciona.
Carlos capacho
Me ayudo mucho, ahorita esta diferente el firebase y bueno configure las reglas de manera diferente y todo por que me negaba accesos… Gracias
Orlando Jesús Pereira Fernández
falso, no funciona tal cual.
Ivan Cardozo
Muchachos tengo un repo con el codigo por si no les funciona , el curso está des actualizado pero yo lo tengo andando en el repo.
, exitos y no dejen el curso .
Santiago Diaz
Genio!. Me anduvo la aplicación utilizando tu código.
Gracias!
Roger Abarca
Roger Abarca
perdón por los comentarios, quería poner cosas en bold y quedaron con ** y los comentarios los deje tipo PHP, ahí lo corrigen. Suerte.
Jesus David Mendez Coronell
30/03/2019 y me funciono con este aporte https://platzi.com/tutoriales/1153-angular/2343-guardando-records-en-firebaseangular-6/
Rodolfo Sáenz
Enero 24, 2019:
Previo a todo, tener instalado el firebase como dice el prof:
npm install angularfire2 firebase --save
Mi experiencia fue:
FireStore Database.PERMISSION DENIED.RealTime Database y cree el nodo lugares.Saludos
Byron EQ
Esto me sirvió mucho ahora en el 2019, ya que este curso es antiguo. Al seguir estos pasos, darse cuenta que al momento que borran el proyecto y luego van a crear de nuevo la BDD, elegir la RealTime DataBase que es con la que se trabaja en este curso y con las reglas publicas para que no tengas problemas de acceso.
Mariano Gomez Bidondo
No pude hacerlo andar con la versión del curso ni con los aportes que dejaron aqui.... lo logre siguiendo este video:
Estaria bueno que los de Platzi publiquen una actualización del codigo para hacer andar este ejemplo.
javier alejandro segovia
javier alejandro segovia
Hola en la parte modelo tenes que separa como le dejo aqui.
export classCrear {
constructor(
public nombre : string,
public distancia : number,
public cercania : number,
public description : string,
public plan : string
)
}
Irvin Ulises Luna Balderas
hola que tal soy nuevo y tengo una duda con esto === [formGroup] de donde lo mandas ha llamar y cual es su función especifica..
Mauro Gomez
Para el id se puede usar la siguiente función
this.afdb.createPushId()
Diego Ortiz
Lo probé, pero me dice: Property 'createPushId' does not exist on type 'AngularFirestore'
Teofilo Rosales Gama
Logre conexion y registro miren como lo hice
https://platzi.com/angular/tutoriales/guardando-records-en-firebaseangular-6/
andres flores
funciona
Esteban Aedo
Muchas gracias Teofilo… aún funciona…
juan david jaramillo zuñiga
tengo este error quien me puede ayudar
gracias
zone.js:665 Unhandled Promise rejection: PERMISSION_DENIED: Permission denied ; Zone: <root> ; Task: WebSocket.addEventListener:message ; Value: Error: PERMISSION_DENIED: Permission denied
at index.cjs.js:13076
at exceptionGuard (index.cjs.js:690)
at Repo.push…/node_modules/@firebase/database/dist/index.cjs.js.Repo.callOnCompleteCallback (index.cjs.js:13067)
at index.cjs.js:12844
at index.cjs.js:12019
at PersistentConnection.push…/node_modules/@firebase/database/dist/index.cjs.js.PersistentConnection.onDataMessage_ (index.cjs.js:12052)
at Connection.push…/node_modules/@firebase/database/dist/index.cjs.js.Connection.onDataMessage_ (index.cjs.js:11337)
at Connection.push…/node_modules/@firebase/database/dist/index.cjs.js.Connection.onPrimaryMessageReceived_ (index.cjs.js:11331)
at WebSocketConnection.onMessage (index.cjs.js:11232)
at WebSocketConnection.push…/node_modules/@firebase/database/dist/index.cjs.js.WebSocketConnection.appendFrame_ (index.cjs.js:10837) Error: PERMISSION_DENIED: Permission denied
at
at exceptionGuard ()
at Repo.push…/node_modules/@firebase/database/dist/index.cjs.js.Repo.callOnCompleteCallback ()
at
at
at PersistentConnection.push…/node_modules/@firebase/database/dist/index.cjs.js.PersistentConnection.onDataMessage_ ()
at Connection.push…/node_modules/@firebase/database/dist/index.cjs.js.Connection.onDataMessage_ ()
at Connection.push…/node_modules/@firebase/database/dist/index.cjs.js.Connection.onPrimaryMessageReceived_ ()
at WebSocketConnection.onMessage ()
at WebSocketConnection.push…/node_modules/@firebase/database/dist/index.cjs.js.WebSocketConnection.appendFrame_ ()
api.onUnhandledError @ zone.js:665
handleUnhandledRejection @ zone.js:692
_loop_1 @ zone.js:682
api.microtaskDrainDone @ zone.js:686
drainMicroTaskQueue @ zone.js:602
push…/node_modules/zone.js/dist/zone.js.ZoneTask.invokeTask @ zone.js:500
invokeTask @ zone.js:1540
globalZoneAwareCallback @ zone.js:1566
Diego Forero
Team PlatziEstas tratando de acceder a un recurso que no tienes permisos, puedes ser que no estés pasando las credenciales de autenticación.
juan david jaramillo zuñiga
esto es un problema del codigo o algo en firebase directamente?
Andres Gallardo
Estuve renegando bastante, les dejo una serie de pautas de como lo resolvi.
this.afDB.list("lugares").push(lugar)
AngularFireModule.initializeApp(environment.firebase), // imports firebase/app needed for everything AngularFirestoreModule, // imports firebase/firestore, only needed for database features AngularFireAuthModule, // imports firebase/auth, only needed for auth features, AngularFireStorageModule, AngularFireDatabaseModule
Espero que les sirva !
Jose Calvano
Si tienen el mismo problema: (No pueden colocar el [(ngModel)] en el input) error NG8002: Can't bind to 'ngModel' since it isn't a known property of 'input'. Aquí la solución: https://www.angularjswiki.com/angular/cant-bind-to-ngmodel-since-it-isnt-a-known-property-of-input/
Alejandro González Reyes
Trabajando con Angular 8 y FirebaseDatabase. Funcionando correctamente
walter Jorge
hola al momento de instalr firebase me aparece core.js:4002 ERROR Error: Uncaught (in promise): NullInjectorError: StaticInjectorError(AppModule)[LugaresService -> AngularFirestore]:
StaticInjectorError(Platform: core)[LugaresService ->
y me anula parte de css.
José Arturo Guamán Pachacama
Crear compomentes Crear
ng generate component Crear
Hola Buenas!!
Ohh Costo bastante debido a las últimas actualizaciones…
Dejo aquí como me funciono…
import { AngularFireModule } from '@angular/fire'; import { AngularFirestoreModule } from '@angular/fire/firestore'; import { AngularFireStorageModule } from '@angular/fire/storage'; import { AngularFireAuthModule } from '@angular/fire/auth'; export const environment = { production: false, firebase: { apiKey: "xxxxx", authDomain: "xxxxx", databaseURL: "xxxxx", projectId: "xxxxx", storageBucket: "xxxxx", messagingSenderId: "xxxxxx" } }; ------------------------------- imports: [ BrowserModule, FormsModule, AgmCoreModule.forRoot({ apiKey: 'xxxxx' }), Routing, AngularFireModule.initializeApp(environment.firebase, 'PlatziSquare'), AngularFirestoreModule, AngularFireAuthModule, AngularFireStorageModule ],
import { Component } from '@angular/core'; import { ActivatedRoute } from '@angular/router'; import { LugaresService } from '../services/lugares.service'; @Component({ selector: 'app-crear', templateUrl: './crear.component.html', styleUrls: ['./crear.component.css'] }) export class CrearComponent { lugar:any={}; constructor(private lugaresService:LugaresService){ } guardarLugar(){ this.lugaresService.guardarLugar(this.lugar) }; }
import {Injectable} from "@angular/core"; import { AngularFirestore } from "@angular/fire/firestore"; @Injectable() export class LugaresService{ lugares:any=[ //contenido ]; constructor(private afDB:AngularFirestore){} public guardarLugar(lugar){ console.log(lugar); this.afDB.collection('lugares').doc('1').set(lugar); }; }
Donde el doc(‘1’) es en reemplazo de ref(‘lugares/1’) que se ve en el video…
service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow read, write: if true; } } }
Espero que les pueda ayudar!!
Si se sigue usando, al parecer el plugin se actualizó al igual que la documentación, pero si en el app.module.ts importan
import { AngularFireDatabaseModule } from 'angularfire2/database';
y en los imports:
imports: [ ... AngularFireDatabaseModule ],
Ya de resto en el service importamos
import { AngularFireDatabase } from 'angularfire2/database';
Y listo!, se siguen los pasos del video.
Espero que sea de ayuda.
Se actualizó, ahora sigan estos pasos para instalar firebase https://github.com/angular/angularfire2/blob/HEAD/docs/install-and-setup.md
En el tutorial no viene nada del realtimedatabase (ejemplo de este vídeo, pero aquí escribo ambas soluciones)
Este no es el ejemplo del curso, pero para que se den una idea de como se hace.
app.module.ts
import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { AppRoutingModule } from './app-routing.module'; import { AppComponent } from './app.component'; import { environment } from '../environments/environment'; import { FormsModule } from '@angular/forms'; /*firebase*/ **import { AngularFireModule } from '@angular/fire'; import { AngularFirestoreModule } from '@angular/fire/firestore'; import { AngularFireStorageModule } from '@angular/fire/storage'; import { AngularFireAuthModule } from '@angular/fire/auth';** **import { AngularFireDatabaseModule } from '@angular/fire/database';** @NgModule({ declarations: [ AppComponent ], imports: [ BrowserModule, AppRoutingModule, FormsModule, **AngularFireModule.initializeApp(environment.firebase), // imports firebase/app needed for everything AngularFirestoreModule, // imports firebase/firestore, only needed for database features AngularFireAuthModule, // imports firebase/auth, only needed for auth features, AngularFireStorageModule, // imports firebase/storage only needed for storage features AngularFireDatabaseModule** ], providers: [], bootstrap: [AppComponent] }) export class AppModule { }
y en donde van a conectar la base de esta manera
app.component.ts
import { Component } from '@angular/core'; import { AppComponent } from './app.component'; **import { AngularFirestore } from '@angular/fire/firestore'; import { AngularFireDatabase } from '@angular/fire/database';** @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent { title = 'ejemplofirebase'; companerosProfi:any = {} constructor(private db: AngularFirestore, private datab: AngularFireDatabase) {} /*ref = this.db.ref("server/saving-data/fireblog");*/ crearCompanero(){ console.log(this.companerosProfi) ** //this.db.collection('companerosProfi').doc('3').set(this.companerosProfi); //AngularFireStore this.datab.database.ref('companerosProfi/2').set(this.companerosProfi); //AngularFireDatabase** } }
Espero les ayude, si no lo explico tan bien es que quiero seguir con el curso haha, saludos.
Hola chico he visto mucho comentario que tenia muchos problema y sin solucion.
Bueno Empezemos
Primero en la carpeta Crear, Creamos una archivo que se llamara crear.module.ts
en que consiste este archivo, bueno es muy simple.Para crear un formulario se necesita un modelo con determinado atriburo ej: nombre,apellido,mail,password,etc.
Haci que empezemos ha crear el modelo en la carpeta Crear
Asi crear/crear.module.ts
// Modelo export class Crear { constructor( public nombre : string, public distancia : number, public cercania : number, public description : string, public plan : string ){} }
Una vez que tenes un modelo.
Ahora que modificar crear.component.ts aca le dejo la modificacion copien
<div class="alert alert-secondary" role="alert"> <a routerLink="/">Lugares</a> / Crear Lugar </div> <h1>Crear</h1> <hr> <!-- Contacto Formulario --> <div class="container"> <form [formGroup]="formulario" (ngSubmit)="onSubmit()"> <div class="form-group"> <label>Nombre</label> <input type="text" class="form-control" aria-describedby="emailHelp" placeholder="Nombre" formControlName="nombre" id="nombre"> </div> <div class="form-group"> <label>Distancia</label> <input type="text" class="form-control" placeholder="Distancia" formControlName="distancia" id="distancia"> </div> <div class="form-group"> <label>Cercania</label> <input type="text" class="form-control" placeholder="Cercania" formControlName="cercania" id="cercania"> </div> <div class="form-group"> <label>Descripcion</label> <textarea class="form-control" formControlName="description" id="description"></textarea> </div> <hr> <label>Plan</label> <input type="text" class="form-control" formControlName="plan" id="plan"> <hr> <button type="submit" class="btn btn-primary">Enviar</button> <button type="button" class="btn btn-secondary" routerLink="/">Cancelar</button> </form> </div>
Segundo paso modificamos el crear.component.ts aca le dejo copien.
import { Component, OnInit } from '@angular/core'; import { Crear } from './crear.module'; import { FormGroup, FormControl, Validators } from '@angular/forms'; import { lugaresComponent } from '../lugares/lugares.component'; import { AngularFireDatabase } from 'angularfire2/database/database'; @Component({ selector: 'crear-root', templateUrl: './crear.component.html' }) export class CrearComponent implements OnInit { constructor(private db:AngularFireDatabase){} formulario : FormGroup; ngOnInit(){ this.formulario = new FormGroup({ nombre: new FormControl(null, Validators.required), distancia: new FormControl(null, Validators.required), cercania: new FormControl(null, Validators.required), description: new FormControl(null, Validators.required), plan: new FormControl(null, Validators.required) }) } onSubmit(){ if (this.formulario.valid){ const { nombre, distancia, cercania, description, plan } = this.formulario.value; const lugar = new Crear(nombre, distancia, cercania, description, plan); console.log(lugar) this.db.database.ref('lugares/1').set(lugar); } } }
Y por ultimo hay que agregar en app.module.ts
agrear ReactiveFormsModule
quedaria asi
import { FormsModule, ReactiveFormsModule } from ‘@angular/forms’;
imports:[
FormsModule,
ReactiveFormsModule
]
y Listo.
Comente si le funciono!!