首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Modular的版本9在CloudFi还原集合中获取文档和嵌套集合?

如何使用Modular的版本9在CloudFi还原集合中获取文档和嵌套集合?
EN

Stack Overflow用户
提问于 2021-09-26 18:30:57
回答 3查看 895关注 0票数 3

下面是一个教程,在教程中使用Firestore从集合中检索数据。主要有两件事:检索文档和嵌套在文档中的集合。下面我的代码是基于FireStore v8的,我想把它转换成web 9,我发现它非常复杂!

代码语言:javascript
复制
    useEffect(()=>{
        if(roomId){
            db.collection('rooms').doc(roomId).onSnapshot(snapshot => {
                setRoomName(snapshot.data().name);
            });

            db.collection('rooms').doc(roomId).collection("messages").orderBy("timestamp","asc").onSnapshot(snapshot => {
                setMessages(snapshot.docs.map(doc => doc.data()))
            });

        }
    },[roomId])
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-09-27 05:49:47

这个人应该做好这份工作!

代码语言:javascript
复制
    useEffect(() => {
        if(roomId){
            onSnapshot(doc(db, "rooms", roomId), (document) =>{ 
                setRoomName(document.data().name);
            });
            const msgColl = query(collection(db, "rooms", roomId, "messages"), orderBy("timestamp"));
            onSnapshot(msgColl, (querySnapshot) => {
                setMessages(querySnapshot.docs.map(msg => msg.data()))
            });
        }
    }, [roomId])
票数 2
EN

Stack Overflow用户

发布于 2021-09-26 19:30:03

试试这个:

代码语言:javascript
复制
import { collection, query, where, doc, onSnapshot } from "firebase/firestore";

useEffect(() => {
  onSnapshot(doc(db, "rooms", roomId), (doc) => {
    setRoomName(doc.data().name)
  });

  const q = query(collection(db, "rooms", roomId, "messages"), orderBy("timestamps"));

  onSnapshot(q, (querySnapshot) => {
    setMessages(querySnapshot.docs.map(doc => doc.data()))
  });
}, [roomId])

同时结帐:

票数 2
EN

Stack Overflow用户

发布于 2021-09-27 21:07:32

这是给别人的..。

V8:

代码语言:javascript
复制
export const fetchAccountAssets = (userID, accountID) => db()
  .collection('Accounts')
  .doc(userID)
  .collection('Assets')
  .get()
  .then((querySnapshot) => querySnapshot);

V9:

代码语言:javascript
复制
export const fetchAccountAssets = async (userID, accountID) => {
  return await getDocs(collection(db, 'Accounts', userID, 'Assets'));
}

我不认为我需要在这里等待,但是哦,好吧。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69337836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档