.where("id","not-in",[...passedUserIds,..."> 'firebase.firestore().collection().where(_, _, *) 'value' 不是有效的过滤器。'not-in' 过滤器支持值数组中最多包含 10 个元素。”-PHP中文网问答
'firebase.firestore().collection().where(_, _, *) 'value' 不是有效的过滤器。'not-in' 过滤器支持值数组中最多包含 10 个元素。”
P粉833546953
P粉833546953 2023-09-04 22:44:17
0
1
506

firebase.firestore().collection().where(_, _, *)“值”无效。 “not-in”过滤器支持值数组中最多包含 10 个元素。

unlanguages = firestore() .collection("users") --> .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.languages[0] == languages || doc._data.languages[1] == languages || doc._data.languages[2] == languages || doc._data.languages[3] == languages || doc._data.languages[4] == languages || doc._data.languages[5] == languages || doc._data.languages[6] == languages || doc._data.languages[7] == languages ) .map((doc) => ({ id: doc.id, ...doc.data() })) setProfiles(dondur2) } })

所以在这里出现了一个问题,'ids'超过了10个,我该如何解决?我查看了其他的问题,但对我没有用。

P粉833546953
P粉833546953

全部回复 (1)
P粉193307465

这句话的翻译如下:

.where("id", "not-in", [...passedUserIds, ...smashesUserIds])

你很可能在[...passedUserIds, ...smashesUserIds]数组中有超过10个元素。

这是Firestore的限制。绕过这个限制的唯一方法是要么调整你的数据模型,要么找到一种减少数组中元素数量的方法。如果没有看到你的数据的真实示例,很难给出进一步的建议。

    最新下载
    更多>
    网站特效
    网站源码
    网站素材
    前端模板
    关于我们 免责声明 Sitemap
    PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!