React中snapshop/sub collection的Firebase版本调整



我试图将下面的代码(ver8)替换为firebase SDK ver9(模块化风格)。但目前还没有成功。

useEffect(() => {
const unsub = db
.collection("posts")
.doc("postId")
.collection("comments")
.orderBy("timestamp", "desc")
.onSnapshot((snapshot) => {
//update some state
});
return () => {
unsub();
};
}, []);

我试图使用查询访问此子集合与orderBy参考以下官方示例,但无法找到工作的解决方案,特别是如何处理查询中的子集合引用。如何实现collection().doc().collection().orderBy().onSnapshot">

如果有人给我提示,我真的很感激。BR https://firebase.google.com/docs/firestore/query-data/listen

https://firebase.google.com/docs/firestore/query-data/order-limit-data

就我在collection函数的文档中看到的,您可以将整个路径作为字符串传入。

应该是这样的:

...
const db = getFirestore();
const commentsRef = doc(db, "posts", postId, "comments");

@Frank-san非常感谢您的提示。现在,使用完整路径参数(你的提示)一切正常,如下所示。

useEffect(() => {
const q = query(
collection(db, "posts", props.postId, "comments"),
orderBy("timestamp", "desc")
);
const unSub = onSnapshot(q, (snapshot) => {
//Some process
});
return () => {
unSub();
};
}, []);
再次感谢您,祝您愉快!

最新更新