Obtenga el ID de índice de un artículo en Firebase AngularFire
Aquí se hizo una pregunta similar, pero la única respuesta aceptada no responde realmente a la pregunta.
Al agregar elementos anidados a Firebase a través de AngularFire, cada elemento se establece bajo otro índice numerado numéricamente.
Debido a esto, necesitaré hacer referencia a los productos del usuario con la siguiente url relativa:
users/:id/products
Mi pregunta es: una vez que haya creado un usuario (o algo parecido), ¿cómo obtengo el valor del índice?
// Get the users
var ref = new Firebase('https://myapp.firebaseio.com/users')
var promise = angularFire(ref, $scope, 'users', {})
promise.then(function() {
// Can I get the ID from here somehow?
})
// Users saves a product
id = null // ???
var product = {
name: 'new product',
desc: 'this is a new product'
}
var ref = new Firebase('https://myapp.firebaseio.com/users/' + id + '/products')
var promise = angularFire(ref, $scope, 'products', {})
promise.then(function() {
$scope.products.push(product)
})
Actualizar
Para aclarar, esto no es una pregunta acerca de la autenticación del usuario. Ya tengo eso cuidado. Perdón por la confusion.
Acabo de encontrarme con una pared de ladrillos cuando empiezo a hacer cosas "debajo" de otras cosas en Firebase. No importa si esuser
s ogiraffe
s.
Si hago "Tiendas", cada Tienda tiene "Productos" (digamos.)
Me gustaría poder recuperarlos con
stores/{storeId}/products
Pero elstoreId
idealmente sería el ID de índice que se crea a partir de AngularFire (vea la imagen que adjunto). El problema es que AngularFire simplemente crea esta identificación sin avisarme.
Si tuviera alguna función de éxito como
success: function(response) {
$scope.store.id = response.indexId
}
Eso tendría más sentido, pero no parece que AngularFire esté preparando esta funcionalidad tan necesaria. Demuéstrame que estoy equivocado, por favor. :)