AgularFire2でクエリを実行しています。特定のプロパティを持つ項目を検索します(値は重要ではなく、いくつかの値が十分です)startAt
の空の文字列を使用して、期待どおりに動作します。AngularFire2のリストで、null以外の値とオプションの「key」パラメータを持つ利用可能な項目を照会します
ベータ8は、クエリ(startAt
、endAt
とequalTo
)で「オプションのキーの値を」使用することができますので、私は与えられたkey
から始めて、特定の要素だけを取得したいです。ここで
は一例です:
[
{"$key": "a", "email":"[email protected]","name":"Alice"},
{"$key": "b", "email":"[email protected]","name":"Bob"},
{"$key": "m", "name":"Malory"}
]
このクエリは唯一の "ボブ" を返しますが、両方のボブ&アリスはありません。ここで
query: {
startAt: { value: '', key: 'b'},
orderByChild: 'email'
}
はPlunkrです。
UPDATE:(私が達成したいものを明確にする例)
は、我々のDBにリストdealers
を持っていると仮定し、各ディーラーは彼らの在庫(トラック、バスでvehicles
の一つ以上の種類があり、車など):dealers/{dealerUid}/inventory
私は最初に深いパス(例:orderByChild: 'inventory/cars'
)で試してみましたが、予期しない動作を見ますが、最初のレベルのクエリでも同じことが起こります。 (私は彼らのインベントリに車を持っているディーラーを取得したいが、すべてのディーラーが在庫に車を持っていない、いくつかのUID({dealerUid}
)から始まると仮定します。
どちらか私が何か間違ったことをやっているか、バグがある。
実際には、最後に返された子は 'email'を持っていません。その子供の包含はバグかもしれない。私は空の文字列の前に 'null'をソートするべきだと思っていたでしょう。 – cartant
いいえ、私はすべての利用可能な要素を表示するだけで、この投稿にその子供をコピーしました。あなたは正しい、これは期待される。私の間違い。 – Bogac
これはFirebase SDKの有効な動作ですが、空文字列は特別な場合と考えてください。 'startAt' /' endAt'に空文字列と指定されたキーの両方がある場合は、キーはさらに使用可能な値ではありません。あなたは機能リクエストを開いた方がいいと思いますか? – Bogac