「firebase.firestore().collection().where(_, _, *) 'value' は有効なフィルターではありません。「not-in」フィルターは、値配列内の最大 10 個の要素をサポートします。
P粉833546953
2023-09-04 22:44:17
<p>firebase.firestore().collection().where(_, _, *) '値' が無効です。 「not-in」フィルターは、値配列で最大 10 個の要素をサポートします。 </p>
<pre class="brush:php;toolbar:false;">unlangages = firestore()
.collection("ユーザー")
--> .where("id", "not-in", [...passedUserIds, ...smashesUserIds])
.onSnapshot(async querySnapshot => {
if (querySnapshot?.docs?.length > 0) {
let dondur2 = await querySnapshot?.docs
.filter((doc) => doc.id != user.uid)
.filter((doc) => doc._data.gender != loggedInProfile.gender)
.filter((doc) => doc._data.age <= `${value[1]}`)
.filter((doc) => doc._data.age >= `${value[0]}`)
.filter((doc) =>
doc._data.langages[0] == 言語 ||
doc._data.langages[1] == 言語 ||
doc._data.langages[2] == 言語 ||
doc._data.langages[3] == 言語 ||
doc._data.langages[4] == 言語 ||
doc._data.langages[5] == 言語 ||
doc._data.langages[6] == 言語 ||
doc._data.langages[7] == 言語
)
.map((doc) => ({ id: doc.id, ...doc.data() }))
setProfiles(dondur2)
}
})</pre>
<p>ここで問題が発生しました。「ids」が 10 を超えています。どのように解決すればよいでしょうか?他の質問も見ましたが、うまくいきませんでした。 </p>
この文の翻訳は次のとおりです:
リーリー[...passedUserIds, ...smashesUserIds]
配列には 10 個を超える要素がある可能性があります。これは Firestore の制限です。 この制限を回避する唯一の方法は、データ モデルを調整するか、配列内の要素の数を減らす方法を見つけることです。データの実際の例を見ないと、さらにアドバイスするのは困難です。