Con angulafire fue posible recuperar un pushid de registro antes de guardarlo en la base de datos:
myModelDto.key = dbRef.push().key; // Add the myModelDto to the relative colletion Esto fue útil, ya que podía almacenar la clave de firebase como propiedad de mi modelo.
Ahora con angularfire2 esto no parece posible de una manera limpia/simple :
constructor(private angFire: AngularFire) { this.placeRef$ = angFire.database.list('/places'); } insertPlace = (place: IPlace): firebase.Thenable<IPlace> => { return this.placeRef$.push(place) .then(item => { place.id = item.key; this.placeRef$.update(item.key, place) });Por lo tanto, me pregunto si me estoy acercando a firebase de manera incorrecta (deseo tener una propiedad clave vinculada a mi modelo por conveniencia) o si hay una mejor manera de agregar el pushid a los registros recién agregados.
Eche un vistazo a esta respuesta sobre los problemas de angularfire2
https://github.com/angular/angularfire2/issues/199
kanafghan escribe:
const pushId = this.afDb.createPushId(); const item = { ...item, id: pushId }; this.afDb.list('items').set(item.id, item);