![](/img/trans.png)
[英]Firebase: Cannot read properties of undefined (reading 'indexOf')
[英]TypeError: Cannot read properties of undefined (reading 'indexOf') at it.fromString
我正在嘗試按降序訂購我的“訂單”系列,但出現此錯誤,我似乎無法弄清楚原因。
const [orders, setOrders] = useState([]);
useEffect(() => {
if (user) {
const userOrders = onSnapshot(
doc(db, "users", user?.id, "orders").orderBy("created", "desc"));
setOrders(
userOrders.map((doc) => ({
id: doc.id,
data: doc.data(),
}))
);
} else {
setOrders([]);
}
}, [user]);
我是 v9 模塊化 firebase 的新手,如果有人可以幫助我解決這個問題,我將不勝感激。
您的代碼中有幾個問題:
doc(db, "users", user?.id, "orders").orderBy("created", "desc");
您嘗試在DocumentReference
上調用orderBy()
方法,這是不可能的(實際上這個DocumentReference
定義錯誤)。 您需要在CollectionReference
上調用orderBy()
方法。userOrders
上調用map()
,因為onSnapshot()
為 DocumentSnapshot 事件附加了一個偵聽器並返回一個 function ,可以調用它來取消快照偵聽器。我建議您閱讀以下文檔:
get()
方法來獲取數據一次。const q = query(citiesRef, orderBy("name"), limit(3));
定義Query
.在您的情況下,查詢應聲明如下:
const collRef = collection(db, "users", user?.id, "orders");
const q = query(collRef, orderBy("created", "desc"));
const querySnapshot = await getDocs(q);
querySnapshot.forEach((doc) => {
console.log(doc.id, " => ", doc.data());
});
// Or querySnapshot.docs().map(...);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.