Firebase Cloud功能托管,“一次”回调适用于云功能,但不适用于托管站点

时间:2017-06-26 23:46:49

标签: javascript firebase https google-cloud-functions firebase-hosting

我正在使用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());
  });
});

1 个答案:

答案 0 :(得分:1)

您正在为响应设置缓存标头:

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

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

如果您不希望缓存响应,请不要设置缓存标头。