我已经使用 firebase firestore 和函数实现了排行榜。我想缓存函数的输出/或绕过它并通过缓存为使用此函数的应用程序提供服务。假设我将其缓存了 3 小时。有没有一种方法可以使用可调用函数在 firebase 上实现此目的?我的应用程序是用 flutter 构建的。
exports.getScores = functions
.runWith({
enforceAppCheck: true, // Reject requests with missing or invalid App Check tokens.
})
.https.onCall(async (data, context) => {
console.log('enforceAppCheck');
try {
const scoreQ = await admin.firestore().collection("players")
.orderBy("score", "desc")
.limit(7)
.get();
return scoreQ.docs.map((doc) => {
return {
player: doc.id,
score: doc.data().score,
mates: doc.data().checkmates,
kos: doc.data().knockouts,
level: doc.data().level,
};
});
} catch (e) {
functions.logger.log("error occured", e);
return (e);
}
});
Cloud Functions 或 Firestore 中没有针对该特定用例构建任何内容,但您可以非常轻松地自行构建。
source: Source.cache
强制从缓存加载数据注意:强制从缓存中获取数据的选项最近才添加到 Firestore API,因此请务必使用最新版本的 SDK。