云函数(Cloud Functions)是一种无服务器计算服务,允许你在云端运行代码而无需管理服务器。Firebase 是 Google 提供的一个全面的移动和 Web 应用开发平台,其中包括实时数据库和 Firestore 数据库。
Firestore 是 Firebase 的 NoSQL 文档数据库,它支持子集合(subcollections),即文档内嵌套的集合。复合查询(Compound Queries)是指在一个查询中结合多个条件来检索数据。
复合查询可以基于以下条件:
AND
、OR
、NOT
==
、<
、<=
、>
、>=
array-contains
、array-contains-any
假设你有一个电商应用,其中每个订单(order)文档包含一个子集合 items
,每个 item
文档包含商品信息。你可以使用复合查询来检索特定订单中价格在某个范围内的商品。
以下是一个使用 Firebase Firestore 进行复合查询的示例代码:
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
exports.exampleFunction = functions.https.onRequest(async (req, res) => {
const orderId = req.query.orderId;
const minPrice = req.query.minPrice;
const maxPrice = req.query.maxPrice;
try {
const itemsRef = admin.firestore().collection('orders').doc(orderId).collection('items');
const querySnapshot = await itemsRef
.where('price', '>=', minPrice)
.where('price', '<=', maxPrice)
.get();
const items = [];
querySnapshot.forEach((doc) => {
items.push({ id: doc.id, ...doc.data() });
});
res.status(200).send(items);
} catch (error) {
console.error('Error fetching items:', error);
res.status(500).send('Internal Server Error');
}
});
array-contains
条件。通过以上信息,你应该能够理解 Firebase 子集合中的复合查询及其相关应用场景和常见问题。
云+社区沙龙online [国产数据库]
小程序云开发官方直播课(应用开发实战)
云+社区技术沙龙[第22期]
DB TALK 技术分享会
T-Day
小程序·云开发官方直播课(数据库方向)
云+社区沙龙online [新技术实践]
云+社区技术沙龙[第4期]
小程序·云开发官方直播课(数据库方向)
领取专属 10元无门槛券
手把手带您无忧上云