Quiero obtener algunos datos usando navParams pero no funciona, pero si proporciono un valor estático, entonces funciona. No se que esta mal. Aquí está mi código que no funciona y vuelve vacío

console.log(this.navParams.get('id')) // prints 10
const id = this.navParams.get('id');
this.categoryRef = this.db.list('/category', ref => ref.orderByChild('id').equalTo(id));
this.category = this.categoryRef.snapshotChanges().map(changes => {
    return changes.map(c => ({ key: c.payload.key, ...c.payload.val() }));
});

Si doy valor estático, entonces funciona como

const id = 10;
this.categoryRef = this.db.list('/category', ref => ref.orderByChild('id').equalTo(id));
this.category = this.categoryRef.snapshotChanges().map(changes => {
    return changes.map(c => ({ key: c.payload.key, ...c.payload.val() }));
});
0
Azam Alvi 11 nov. 2017 a las 19:46

2 respuestas

La mejor respuesta

En realidad, encontré un problema en el lado de la base de datos de Firebase. Mi identificación no se almacenó con comillas dobles como "1" se guardó como 1, luego lo hago entre comillas dobles y funciona bien entonces ingrese la descripción de la imagen aquí

0
Azam Alvi 12 nov. 2017 a las 10:03

¿Puedes probar como a continuación?

myId:number;//declare a global variable

constructor(){
   this.myId=this.navParams.get('id');
   this.categoryRef = this.db.list('/category', ref => 
           ref.orderByChild('id').equalTo(this.myId));
   this.category = this.categoryRef.snapshotChanges().map(changes => {
           return changes.map(c => ({ key: c.payload.key, ...c.payload.val() }));
});
}
0
Sampath 11 nov. 2017 a las 17:54