firebase 从firestore数组中获取值包含

juzqafwq  于 2022-11-17  发布在  其他
关注(0)|答案(1)|浏览(154)

我只能从数组中得到我需要的值,如果我添加了一个字符串,如“ا لام",”سبو رة”或任何其他字符串值,但是,我希望该值从另一个组件或屏幕传递一个道具.有没有办法处理这个问题?

const fetchCategoryProducts = (catId)=>{
    const categoryProductsCollection = query(collection(db, "Product"), where("categories", "array-contains", catId))
    const getCategoryProducts = getDocs(categoryProductsCollection);
    const categoryProducts = (await getCategoryProducts).docs.map(item=>{
        const data = item.data();
        data.id = item.id;
        return data
    })
    console.log(categoryProducts) // getting empty array here
}}
z6psavjg

z6psavjg1#

据我问:
catId的值是多少?
而你的回答是:
字符串的值是数组中包含的值之一。我只用一个字符串而不是catId来测试它,它可以在fin中工作,但是当我从其他组件传递catId时,我得到了一个空数组。
如果代码使用硬编码的值,则数据库中的值很可能包含白色,为此,必须使用trim()

const fetchCategoryProducts = (catId)=>{
    const categoryProductsCollection = query(collection(db, "Product"), where("categories", "array-contains", catId.trim()))
    const getCategoryProducts = getDocs(categoryProductsCollection);
    const categoryProducts = (await getCategoryProducts).docs.map(item=>{
        const data = item.data();
        data.id = item.id;
        return data
    })
    console.log(categoryProducts)
}}

相关问题