Firebase Cloud Functions 托管,'once' 回调在云函数中有效,但在托管站点中无效

Firebase Cloud Functions hosting, 'once' callback works in cloud functions but not in hosting site

我正在使用 Firebase Cloud Functions 通过 HTTP 触发器读取数据,它在默认提供的 cloudfunctions.net URL 中工作得很好。

现在,出于个人目的,我正在使用 Firebase 托管。我试图在数据库中的子项发生更改时获取一个值,该值在函数 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());
  });
});

您正在为您的响应设置缓存 headers:

res.set('Cache-Control', 'public, max-age=300, s-maxage=600');

这意味着只要您指定(5 或 10 分钟),您发送的响应将被缓存(由 CDN 和可能由您的浏览器)。

如果您不想缓存响应,请不要设置缓存 headers。