同様の質問がここで尋ねられましたが、受け入れられた1つの回答は実際には質問に答えていません.
AngularFire を使用して、リレーショナル スタイルのデータベースを作成することは可能ですか? それとも UniqueID にアクセスしますか?
AngularFire を介してネストされたアイテムを Firebase に追加する場合、各アイテムは実際には、番号が付けられた別のインデックスの下に設定されます。
このため、次の相対 URL でユーザーの製品を参照する必要があります。
users/:id/products
私の質問は、ユーザー (またはそれに関するもの) を作成したら、どうすればインデックス値を取得できますか?
// 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)
})
アップデート
明確にするために、これはユーザー認証に関する質問ではありません。私はすでにその世話をしています。混乱させて申し訳ありません。
Firebase で他のものの「下」にあるものを作り始めたとき、レンガの壁にぶつかりました。user
sでもsでも構いませんgiraffe
。
「お店」を作ると、各お店には「商品」があります(としましょう)。
それらを取得できるようにしたい
stores/{storeId}/products
しかし、storeId
AngularFire から作成されたインデックス ID が理想的です (添付の図を参照してください)。問題は、AngularFire がこの ID を通知せずに作成することです。
次のような成功関数があった場合
success: function(response) {
$scope.store.id = response.indexId
}
それは最も理にかなっていますが、AngularFire がこの非常に必要な機能を準備しているようには見えません。私が間違っていることを証明してください。:)