0
を呼び出しを停止約束を返し、決してありません私はこのコードFirebaseクラウド機能は
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に行く、それは動作しますが、ページはロードを続け、私はログを見て、終了時に関数が呼び出され続けます。明らかに約束は適切に返されていないので、私はなぜそれがわからないのですか?
これはまだ問題を解決していません。この関数は呼び出しを続け、前と同じようにWebページのロードが完了することはありません。なぜこれが別の理由がありますか? – aoeuaoeu
ああ、それはあなたが 'res'を使って返答することになっているからです。あなたが応答を送らないのでページはレンダリングされません。 – Callam
ありがとうございました! – aoeuaoeu