Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

462
Views
Agregue snapshot.val & snapshot.key a una matriz mientras estoy suscrito

me voy a romper la cabeza con una piedra ^^"
tengo este codigo:

 this.af.database.list('/Documentos', { preserveSnapshot: true }) .subscribe(snapshots => { snapshots.forEach(snapshot => { console.log(snapshot.key, snapshot.val()); }); })

Con eso extraigo todos los datos correctamente, pero ahora quiero agregar a una matriz de objetos o algo así (comencé hace unas semanas con Firebase + Angular2).
Quiero llenar esa matriz para cargar la [tabla inteligente ng2] y si estoy pensando parcialmente bien con una matriz correctamente formada, llenaré la tabla, pero no sé cómo. Espero que alguien pueda ayudar.

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Si desea un mapa (objeto) con key: value , puede hacerlo fácilmente con Array.prototype.reduce() :

 const map = snapshots.reduce((map, snapshot) => { map[snapshot.key] = snapshot.val(); }, {});
over 4 years ago · Santiago Trujillo Report

0

Bueno, según el ejemplo: https ://akveo.github.io/ng2-smart-table/#/examples/using-filters...

(Puede encontrar el código fuente aquí: https://github.com/akveo/ng2-smart-table/blob/master/src/app/pages/examples/filter/basic-example-source.component.ts )

... tienes que poner tus datos en un objeto JSON:

 settings = { columns: { id: { title: 'ID', filter: false, }, name: { title: 'Full Name', filter: false, }, username: { title: 'User Name', filter: false, }, email: { title: 'Email', filter: false, } } }; data = [ { id: 1, name: 'Leanne Graham', username: 'Bret', email: 'Sincere@april.biz', }, { id: 2, name: 'Ervin Howell', username: 'Antonette', email: 'Shanna@melissa.tv', } ];

"configuración" contiene los nombres de sus columnas y "datos" deben coincidir con las columnas de "configuración".

Sería más fácil si supiéramos un poco más de su código (columnas de su tabla + datos devueltos por su servicio), pero supongo que algo así funcionaría:

 data = []; this.af.database.list('/Documentos', { preserveSnapshot: true }) .subscribe(snapshots => { snapshots.forEach(snapshot => { data.push( { [snapshot.key]: snapshot.val() } ); }); })

Tenga en cuenta que esto creará una matriz JSON con solo una clave/valor por fila. Necesitamos saber más sobre sus datos para darle una respuesta adecuada.

over 4 years ago · Santiago Trujillo Report

0

Ok, encontré la solución con un simple Array() x)

 this.af.database.list('/Documentos', { preserveSnapshot: true }) .subscribe(snapshots => { snapshots.forEach(snapshot => { let length = todo.documentos.push(snapshot.val()); // documentos is an array in the class todo.source.load(todo.documentos); }); });
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!