Currently, there is no way to get the Firebase key (aka push ID) for items bound via bindAsArray(). We should adopt a solution like AngularFire's $toJSON() method which handles both arrays of objects and arrays of primitives. In the case of objects, we do something very similar to what you have done. In the case of a primitive, we set the array items as objects with $value (i.e. the primitive value) and $id (the Firebase key).