Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Firebase云功能:如何在http请求中使用通配符推送数据_Javascript_Firebase_Firebase Realtime Database_Google Cloud Functions - Fatal编程技术网

Javascript Firebase云功能:如何在http请求中使用通配符推送数据

Javascript Firebase云功能:如何在http请求中使用通配符推送数据,javascript,firebase,firebase-realtime-database,google-cloud-functions,Javascript,Firebase,Firebase Realtime Database,Google Cloud Functions,我正在探索Firebase中的新云函数功能,因此我知道通配符在实时数据库触发器中的工作方式,但当我尝试在http请求中添加通配符时,它会忽略通配符并将新数据推送到新的{userId}对象中 基本上,我正在尝试创建一个函数,它将从“今天”对象中的所有用户获取数据,并将其推送到“昨天”对象中(类似于统计或过程)。为此,我使用了基于cron的示例 我已经开始构建由http请求触发的简单函数,其想法是为所有用户推送一些数据({userId}通配符),但是数据被推送到新的{userId}对象中,忽略通配符

我正在探索Firebase中的新云函数功能,因此我知道通配符在实时数据库触发器中的工作方式,但当我尝试在http请求中添加通配符时,它会忽略通配符并将新数据推送到新的{userId}对象中

基本上,我正在尝试创建一个函数,它将从“今天”对象中的所有用户获取数据,并将其推送到“昨天”对象中(类似于统计或过程)。为此,我使用了基于cron的示例

我已经开始构建由http请求触发的简单函数,其想法是为所有用户推送一些数据({userId}通配符),但是数据被推送到新的{userId}对象中,忽略通配符

exports.addEntry = functions.https.onRequest((req, res) => {
  const value = req.query.addValue;
  admin.database().ref('users/{userId}').push({value}).then(snapshot => {
  res.redirect(303, snapshot.ref); });
});

问题:如何使此功能将数据推送到所有用户

在触发器中连接通配符的语法不适用于构建数据库引用的路径。在这里,您必须使用常规字符串插值:

exports.addEntry = functions.https.onRequest((req, res) => {
  const value = req.query.addValue;
  admin.database().ref('users/'+userId).push({value}).then(snapshot => {
  res.redirect(303, snapshot.ref); });
});
或ES6模板文本:

exports.addEntry = functions.https.onRequest((req, res) => {
  const value = req.query.addValue;
  admin.database().ref(`users/${userId}`).push({value}).then(snapshot => {
  res.redirect(303, snapshot.ref); });
});

谢谢,但是有没有办法将数据推送到所有useid,而不仅仅是给定的useid?当然。要做到这一点,请在用户上循环,并向每个用户推送相同的值。