在 Firebase 中,你可以使用 where
子句(也称为查询条件)来检索满足特定条件的数据
以下是一些常见的 Firebase 查询示例:
假设你有一个名为 users
的集合,其中包含以下文档:
{
"users": [
{ "id": 1, "name": "Alice", "age": 30 },
{ "id": 2, "name": "Bob", "age": 25 },
{ "id": 3, "name": "Charlie", "age": 35 }
]
}
const firebase = require("firebase/app");
require("firebase/firestore");
const firebaseConfig = {
// ...你的 Firebase 配置
};
firebase.initializeApp(firebaseConfig);
const db = firebase.firestore();
db.collection("users")
.where("age", ">", 25)
.get()
.then((querySnapshot) => {
querySnapshot.forEach((doc) => {
console.log(doc.id, " => ", doc.data());
});
})
.catch((error) => {
console.log("Error getting documents: ", error);
});
这个查询将返回年龄大于 25 的用户。
db.collection("users")
.where("name", "==", "Alice")
.get()
.then((querySnapshot) => {
querySnapshot.forEach((doc) => {
console.log(doc.id, " => ", doc.data());
});
})
-catch((error) => {
console.log("Error getting documents: ", error);
});
这个查询将返回名为 "Alice" 的用户。
Realtime Database 不支持 where
子句,但你可以使用 orderByChild
和 equalTo
方法来实现类似的功能。
假设你有一个名为 users
的节点,其中包含以下数据:
{
"users": {
"1": { "name": "Alice", "age": 30 },
"2": { "name": "Bob", "age": 25 },
"3": { "name": "Charlie", "age": 35 }
}
}
const firebase = require("firebase/app");
require("firebase/database");
const firebaseConfig = {
// ...你的 Firebase 配置
};
firebase.initializeApp(firebaseConfig);
const db = firebase.database();
db.ref("users")
.orderByChild("age")
.startAt(25)
.endAt(35)
.once("value", (snapshot) => {
snapshot.forEach((childSnapshot) => {
console.log(childSnapshot.key, " => ", childSnapshot.val());
});
})
.catch((error) => {
console.log("Error getting data: ", error);
});
这个查询将返回年龄在 25 到 35 之间的用户。
请注意,这些示例仅用于演示目的。在实际项目中,你可能需要根据你的需求调整查询条件和数据处理逻辑。
云+社区沙龙online[数据工匠]
企业创新在线学堂
云+社区技术沙龙[第7期]
企业创新在线学堂
Elastic 中国开发者大会
云+社区技术沙龙[第6期]
企业创新在线学堂
云+社区技术沙龙[第23期]
腾讯位置服务技术沙龙
领取专属 10元无门槛券
手把手带您无忧上云