我试图将下面的代码(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();
};
}, []);
再次感谢您,祝您愉快!