【发布时间】:2018-07-19 12:36:31
【问题描述】:
我对 Node.js 和 Firebase 云功能相当陌生。我在下面转载了我的云功能示例:
exports.sync = functions.https.onRequest((req, res) => {
admin.database().ref('users').once('value').then(function(snapshot) {
var updates = {};
admin.database().ref("Player").child("playerweek12").once('value')
.then(function(dataSnapshot) {
var orderedPlayers = dataSnapshot.val();
snapshot.forEach(function(userSnapshot) {
var users = userSnapshot.val();
var selection = users.selection;
updates[`/users/${userSnapshot.key}/week1`] = 10;
updates[`/users/${userSnapshot.key}/week2`] = 10;
admin.database().ref().update(updates).then(function() {
res.send('it worked');
});
});
});
});
});
问题是我在 Firebase 函数日志中不断收到以下错误消息:
Error: Can't set headers after they are sent.
at ServerResponse.OutgoingMessage.setHeader (_http_outgoing.js:356:11)
at ServerResponse.header (/var/tmp/worker/node_modules/express/lib/response.js:767:10)
at ServerResponse.send (/var/tmp/worker/node_modules/express/lib/response.js:170:12)
at /user_code/index.js:33:16
at process._tickDomainCallback (internal/process/next_tick.js:135:7)
该函数完全按照我的意愿执行,但该错误消息有点奇怪,不是吗?是不是我做错了什么?
【问题讨论】:
标签: javascript node.js firebase firebase-realtime-database google-cloud-functions