を使用する場合はequalTo(value, key)
の第2引数をdocumented hereとして使用しようとしています。firebase orderByPriorityがequalToに変わった動作で使用されました
問題は、その2番目のkey
引数を使用すると結果が矛盾することです。
例データセット
items
key1
key2
key3
key4
すべての項目は、同じ優先度を持つ:10
(これは単なる例えば、私のアプリでは、他の優先順位を持つ他の項目がある場合)次のFirebaseクエリを発行して、その優先度を持つ最初の2つの項目を取得する場合:
dbRef.child('items').orderByPriority().equalTo(10).limitToFirst(2)
私は次の取得 - 期待 - 結果:
{ "key1": ..., "key2": ... }
ドキュメントで説明したようにそれから私は、key2
項目の後の結果を取得しよう:
dbRef.child('items').orderByPriority().equalTo(10, 'key2').limitToFirst(2)
結果は非常に奇妙で、常に1つのアイテム、つまり提供されたキーを持つもの:
{ "key2": ... }
何私が期待していたこと後かで始まる二つの結果提供されるキー、そう
{ "key2": ..., "key3": ... }
それとも
{ "key3": ..., "key4": ... }
質問
equalTo()
フィルタを2番目の引数に使用するにはどうすればよいですか?それは思える
この質問はalready askedだったが、それは
それは動作しません: 'Error:Query.orderByKey:複数のorderBy呼び出しを組み合わせることはできません。 'また、 'equalTo()'フィルタはキーに一致する項目だけを取得することがわかりましたか?ドキュメントでは、「先に指定した優先順位を持つ子どもの中で、始める子供の鍵」と書かれています。 – Pandaiolo
私の間違いです。私は私の記事を編集しました。 –
あなたの質問に答えるには、1つの値に基づいてフィルタリングすることのみが許可されています。これはFirebaseのクエリの性質に過ぎません。 –