Uzyskaj identyfikator indeksu elementu w Firebase AngularFire
Podobne pytanie zadano tutaj, ale jedna zaakceptowana odpowiedź tak naprawdę nie odpowiada na pytanie.
Podczas dodawania zagnieżdżonych elementów do Firebase przez AngularFire, każdy element jest w rzeczywistości ustawiony pod innym indeksem numerowanym.
Z tego powodu będę musiał odwołać się do produktów użytkownika za pomocą następującego względnego adresu URL:
users/:id/products
Moje pytanie brzmi: jak już utworzę użytkownika (lub cokolwiek innego), jak uzyskać wartość indeksu?
// 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)
})
Aktualizacja
Aby wyjaśnić, nie jest to pytanie o uwierzytelnianie użytkownika. Mam już to załatwione. Przepraszam za zamieszanie.
Właśnie wpadłem na ceglany mur, kiedy zaczynam robić rzeczy „pod” innymi rzeczami w Firebase. Nie ma znaczenia, czy touser
s lubgiraffe
s.
Jeśli utworzę „Sklepy”, każdy Sklep ma „Produkty” (powiedzmy).
Chciałbym móc je odzyskać
stores/{storeId}/products
AlestoreId
najlepiej byłoby, gdyby był to identyfikator indeksu utworzony z AngularFire (patrz zdjęcie, które załączyłem). Problem polega na tym, że AngularFire po prostu tworzy ten identyfikator, nie informując mnie o tym.
Gdybym miał jakąś funkcję sukcesu
success: function(response) {
$scope.store.id = response.indexId
}
To byłoby najbardziej sensowne, ale nie wydaje się, żeby AngularFire przygotował tę bardzo potrzebną funkcjonalność. Udowodnij, że się mylę. :)