2017-04-06 24 views
4

我試圖運行雲功能並更改數據庫上的值,但每次我返回帶有或不帶'firebase-admin'模塊的承諾函數時60秒後退出。Firebase onWrite雲功能()承諾總是超時

這裏是我的代碼:

var functions = require('firebase-functions'); 
const admin = require('firebase-admin'); 
admin.initializeApp(functions.config().firebase); 

exports.handleDisconnection = functions.database.ref('/pages/{pageId}/listeners/disconnection') 
    .onWrite(event => { 
    const eventSnapshot = event.data; 
    const isDisconnected = eventSnapshot.val(); 
    const pageId = event.params.pageId; 
    console.log('there is a new disconnection on page ' + pageId + ', isDisconnected: ' + isDisconnected); 
    if (eventSnapshot.changed() && isDisconnected) { 
     console.log('is disconnected true'); 
     return admin.database().ref('/pages/'+pageId+'/listeners/disconnection').set({ disconnection: false }).then(() => { 
     console.log('Write succeeded!'); // this never triggers 
     }); 
    } 
}); 
+1

你看到'是在日誌中斷開TRUE'? –

+0

是的,另一個日誌也顯示了我的預期 – Ariel

+1

這看起來應該對我有用。我只是做了一些非常相似的事情,並且得到了日誌並且沒有超時:'return event.data.adminRef.root.child('bar').set(event.data.val())。then(result => { console。日誌('OK') })' –

回答

0
if (eventSnapshot.changed() && isDisconnected) { 
     console.log('is disconnected true');` 
     return admin.database.ref('/...') 
     .set({ disconnection: false }, err => { 
       if(!err) // No error 
         { console.log("Set Updated"); } 
     }); 

一套方法有所回調,其通過在ERR爲對象 可以使用犯錯獲取的操作狀態。

-1

原來問題不在代碼中。

解決它更新的Node.js & NPM

使用 「當前」 版本https://nodejs.org/en/