.where() .limit() .orderBy() 的 Firebase 新命名空间
Firebase new namespace for .where() .limit() .orderBy()
为了限制对 FirestoreDB 的提取,我尝试将最近的命名空间用于 getDocs()。
const firebaseColRef = collection(db, "collection")
这是我试过的:
const firebaseColRef = collection(db, "collection").limit(x)
还有这个:
const getDB = async () => {
const data = await getDocs(firebaseColRef).limit(x);
setFilmDB(data.docs.map((doc) => ({ ...doc.data(), id: doc.id })));
}
两种情况下控制台提示:
Uncaught (in promise) TypeError: firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection(...).limit is not a function
我浏览了几个文档、教程和文章,但除了上面提到的以外,找不到任何其他名称空间。并尝试任何可能的 .limit(x) 追加以获得除控制台提示之外的任何其他结果。没有任何效果。
我错过了什么?
谁能指出我正确的方向?
将不胜感激。
谢谢,安东尼
几乎每个 Firebase 方法都是 Modular SDK 中的一个 top-level 函数,可以直接从相关 SDK 中导入。尝试重构代码,如下所示。
import { collection, getDocs, query, where, limit, orderBy } from "firebase/firestore";
const getDB = async () => {
const colRef = collection(db, "collection");
// Keep adding query clauses in query()
// like chaining them in name-spaced V8 version
const q = query(colRef, where("field", "==", "value"), limit(1));
const data = await getDocs(q);
console.log(data.docs.map((doc) => ({ ...doc.data(), id: doc.id })))
}
同查询的name-spaced版本供参考:
const q = db.collection("col").where("field", "==", "value").limit(1);
您可以在 documentation 中找到新 Firestore SDK 中所有功能的列表。
同时结帐:
为了限制对 FirestoreDB 的提取,我尝试将最近的命名空间用于 getDocs()。
const firebaseColRef = collection(db, "collection")
这是我试过的:
const firebaseColRef = collection(db, "collection").limit(x)
还有这个:
const getDB = async () => {
const data = await getDocs(firebaseColRef).limit(x);
setFilmDB(data.docs.map((doc) => ({ ...doc.data(), id: doc.id })));
}
两种情况下控制台提示:
Uncaught (in promise) TypeError: firebase_firestore__WEBPACK_IMPORTED_MODULE_1__.collection(...).limit is not a function
我浏览了几个文档、教程和文章,但除了上面提到的以外,找不到任何其他名称空间。并尝试任何可能的 .limit(x) 追加以获得除控制台提示之外的任何其他结果。没有任何效果。
我错过了什么?
谁能指出我正确的方向?
将不胜感激。 谢谢,安东尼
几乎每个 Firebase 方法都是 Modular SDK 中的一个 top-level 函数,可以直接从相关 SDK 中导入。尝试重构代码,如下所示。
import { collection, getDocs, query, where, limit, orderBy } from "firebase/firestore";
const getDB = async () => {
const colRef = collection(db, "collection");
// Keep adding query clauses in query()
// like chaining them in name-spaced V8 version
const q = query(colRef, where("field", "==", "value"), limit(1));
const data = await getDocs(q);
console.log(data.docs.map((doc) => ({ ...doc.data(), id: doc.id })))
}
同查询的name-spaced版本供参考:
const q = db.collection("col").where("field", "==", "value").limit(1);
您可以在 documentation 中找到新 Firestore SDK 中所有功能的列表。
同时结帐: