繁体   English   中英

Firebase - 如何仅在 slug URL 与对象中的键匹配的情况下检索发布数据?

[英]Firebase - how to retrieve post data only where the slug URL matches a key in the object?

我对 firebase 很陌生,我无法在Slug key value的帮助下获取博客端口。 我尝试了几件事,但都没有成功。

有人可以帮我获取数据吗?

我想在Sulg URL的帮助下获取我的博客文章数据,而不是代表密钥。 见下图

我有这个键值quickly-extract-email-address-from-text

ID的帮助下,我得到了这篇博文数据。

 const [article, setArticle] = useState([]);

useEffect(() => {

    const docRef = doc(db, "BlogArticles", id);
    onSnapshot(docRef, (snapshot) => {
        setArticle({ ...snapshot.data(), id: snapshot.id });
    });

    
}, []);

在此处输入图像描述

但我想借助这个键值quickly-extract-email-address-from-text

在此处输入图像描述

听起来您在问 如何对 Firestore 执行查询 基于此,您将需要这样的查询:

const articlesRef = collection(db, "BlogArticles");

const q = query(citiesRef, where("slug", "==", "quickly-extract-email-addresses-from-text"));
onSnapshot(q, (snapshot) => {
  snapshot.forEach((doc) => {
    setArticle({ ...doc.data(), id: doc.id });
  })
});

请记住,如果您的数据库将包含与查询匹配的多个文档,则最终只会显示最后一个匹配项。

嘿弗兰克范感谢重播的人

 useEffect(() => {
        const articlesRef = collection(db, "BlogArticles");
        const q = query(articlesRef, where("slug", "==", 'quickly-extract-email-address-from-text'));
        onSnapshot(q, (snapshot) => {
            const articles = snapshot.docs.map((doc) => ({
                id: doc.id,
                ...doc.data(),
            }));
            setArticle(articles);
        });
    }, []);

我没有得到任何返回值, []

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM