【发布时间】:2017-12-24 13:38:35
【问题描述】:
我有这个代码
const functions = require('firebase-functions');
// The Firebase Admin SDK to access the Firebase Realtime Database.
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
const ref = admin.database().ref()
exports.updateActiveUsers = functions.https.onRequest((req, res) => {
console.log("updateActiveUsers Called")
const currentTime = new Date().getTime()
const startDate = currentTime - 432000000
var allPromises = []
return ref.child('users').orderByChild('lastOnline').once('value').then(snap =>{
snap.forEach(childSnap => {
console.log(childSnap.val().userID)
if (childSnap.val().lastOnline > startDate){
const ref2 = ref.child("activeUsers/" + childSnap.val().userID).set(true)
allPromises.push(ref2)
}else{
const ref2 = ref.child("activeUsers/" + childSnap.val().userID).remove()
allPromises.push(ref2)
}
})
console.log("promises: " + allPromises)
return Promise.all(allPromises)
})
})
我似乎无法让它返回或结束函数。我转到它在上传时提供的http url,它可以工作,但是页面不断加载并且我查看日志,并且该函数在完成后继续被调用。显然 Promise 没有正确返回,我不知道为什么!
【问题讨论】:
标签: node.js firebase google-cloud-functions