私はこのリストを持っています:a b c d e f g h i j
。私は選択された項目の周りのリストから3つの項目を取得したい。 e
を選択した場合、結果リストはd e f
になります。f
を選択した場合、結果はe f g
となります。Google Firestoreでページ設定を行う方法は?
私はこの例を作った:
console.clear()
var pag = dbFirestore.collection("pagination")
pag.doc("a").set({parent:"vowels"})
pag.doc("e").set({parent:"vowels"})
pag.doc("i").set({parent:"vowels"})
pag.doc("o").set({parent:"vowels"})
pag.doc("u").set({parent:"vowels"})
pag.doc("y").set({parent:"vowels"})
pag.doc("b").set({parent:"consonants"})
pag.doc("c").set({parent:"consonants"})
pag.doc("d").set({parent:"consonants"})
pag.doc("f").set({parent:"consonants"})
pag.doc("g").set({parent:"consonants"})
pag.doc("h").set({parent:"consonants"})
pag.doc("j").set({parent:"consonants"})
pag.doc("k").set({parent:"consonants"})
pag.doc("l").set({parent:"consonants"})
pag.doc("m").set({parent:"consonants"})
pag.doc("n").set({parent:"consonants"})
pag.doc("p").set({parent:"consonants"})
pag.doc("q").set({parent:"consonants"})
pag.doc("r").set({parent:"consonants"})
pag.doc("s").set({parent:"consonants"})
pag.doc("t").set({parent:"consonants"})
pag.doc("v").set({parent:"consonants"})
pag.doc("w").set({parent:"consonants"})
pag.doc("x").set({parent:"consonants"})
var siblings = ref => {
var out = []
return pag.orderBy("parent").endAt(ref).limit(3).get().then(snap=>{
snap.forEach(doc=>out.push(doc.id))
return
}).then(()=>{
return pag.orderBy("parent").startAfter(ref).limit(2).get().then(snap=>{
snap.forEach(doc=>out.push(doc.id))
return out
})
})
}
siblings(pag.doc("m")).then(out=>{
console.log(out)
}).catch(e=>console.error(e))
sibling("m").then(out=>console.log(out))
でout
に私がk l m n p
を持っている必要があり、それらはすべて2番目のクエリからn p
と組み合わせる最初のクエリからparent:"consonants"
、k l m
を持っているが、私は何か他のものを持っています。
すべてのドキュメントに '{val:letter}'を追加しました。 'startAfter(letter)'は期待どおりに動作しますが 'np'を取得しますが、' pag.where( "parent"、 "=="、 "子音")orderBy( "val")endAt( "m")。limit (3) '' bcd'を前の '' kl'と 'm'の代わりに最初の3つの子音にします –
@AlinCはいあなたは間違いを犯しました。 'endAt'と' limit'を一緒に使うことは、良い結果ではありません。なぜなら、どちらかが強い方の制約であるからです。私に更新させてください。 –
私は、 ''私は ''私は '' '' '' ''の代わりに '' '' '' '' '' 'を得るので、' 'threeBefore''に対して' 'プッシュ 'あなたの答えを自分自身で更新しようとします。私はそれを編集することはできません、私は6文字以上のように編集する必要があります。とにかく私はページ付けする方法を知っている、ありがとう。 –