[英]How do I get all documents in a Cloud Firestore collection using Version 9 of the Modular Web SDK?
[英]How do I get document and nested collection in a document in a Cloud Firestore collection using Version 9 of the Modular Web SDK?
我正在学习使用 Firestore 从集合中检索数据的教程。 有两件主要的事情:检索 DOCUMENT 和嵌套在该 DOCUMENT 中的 COLLECTION。 我下面的代码是基于 FireStore web v8,我想把它转换成 web 版本 9。我发现它很复杂!
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])
尝试这个:
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])
还结帐:
这个应该做的工作!
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])
这只是为了其他人......
V8:
export const fetchAccountAssets = (userID, accountID) => db()
.collection('Accounts')
.doc(userID)
.collection('Assets')
.get()
.then((querySnapshot) => querySnapshot);
V9:
export const fetchAccountAssets = async (userID, accountID) => {
return await getDocs(collection(db, 'Accounts', userID, 'Assets'));
}
我不认为我需要在这里等待,但是哦,好吧..
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.