我正在使用Firebase Cloud Functions通过HTTP触发器读取数据,并且它在默认情况下提供的cloudfunctions.net URL中运行良好。
现在,出于个人目的,我正在使用Firebase Hosting。我正在尝试在数据库中的子项更改时获取值,该值在函数URL中有效,但在托管URL中访问时它只能运行一次,然后它始终显示与第一次相同的内容。它不会等待在数据库中加载新的更改。
这是我正在使用的代码:
exports.bigben = functions.https.onRequest((req, res) => {
res.set('Cache-Control', 'public, max-age=300, s-maxage=600');
res.set('Vary', 'Accept-Encoding, X-My-Custom-Header');
var counter = admin.database().ref('/Rac');
counter.once('child_changed', (snapshot) =>{
res.send(snapshot.val());
});
});
答案 0 :(得分:1)
您正在为响应设置缓存标头:
res.set('Cache-Control', 'public, max-age=300, s-maxage=600');
这意味着您发送的响应将被缓存(由CDN,可能还有您的浏览器),只要您指明(5或10分钟)。
如果您不希望缓存响应,请不要设置缓存标头。