Firebase Cloud Functions:如何在 http 请求中使用通配符推送数据
Firebase Cloud Functions: How to push data using wildcards in http requests
我正在探索 Firebase 中新的 Cloud Functions 功能,所以我知道通配符在实时数据库触发器中的工作原理,但是当我尝试在 http 请求中添加通配符时,它会忽略通配符并将新数据推送到新的{userId} 对象。
基本上,我正在尝试创建一个函数,它将从 'today' 对象中的所有用户获取数据并将其推送到 'yesterday' 对象(类似于统计或过程)。为此,我使用基于 cron 示例的 this topic。
我已经开始构建由 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); });
});
我正在探索 Firebase 中新的 Cloud Functions 功能,所以我知道通配符在实时数据库触发器中的工作原理,但是当我尝试在 http 请求中添加通配符时,它会忽略通配符并将新数据推送到新的{userId} 对象。
基本上,我正在尝试创建一个函数,它将从 'today' 对象中的所有用户获取数据并将其推送到 'yesterday' 对象(类似于统计或过程)。为此,我使用基于 cron 示例的 this topic。
我已经开始构建由 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); });
});