如何在 Firestore 查询中有条件地呈现“Where”语句?

在下面的代码中是否可以有条件地渲染Where语句(基于现有的变量)?


useEffect(() => {

        const getProducts = projectFirestore.collection(collection)

            .where("color", "==", `${urlColor}`)

            .where("size", "==", `${urlSize}`)

            .onSnapshot((snap) => {

                ...

            })


            return () => getProducts();


    },[collection])


    return { docs };

}

我从 URL 参数中提取“urlColor”和“urlSize”,但它们仅在用户选择该选项时才存在。我想要这样的功能


if (urlColor && .where("size", "==", `${urlSize}`))

非常感谢任何帮助,马特


拉风的咖菲猫
浏览 88回答 1
1回答

收到一只叮咚

是的,您只需要在此过程中保存一个临时变量。useEffect(() => {  let query = projectFirestore.collection(collection)  if (urlColor) {    query = query.where("color", "==", `${urlColor}`);  }  if (urlSize) {    query = query.where("size", "==", `${urlSize}`)  }  const unsubscribe = query.onSnapshot((snap => {    ...  });  return () => unsubscribe();});
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript