Firebase onWrite()的云函数承诺总是超时

时间:2017-04-06 17:44:24

标签: firebase firebase-realtime-database google-cloud-functions

我正在尝试运行云功能并更改数据库上的值,但每次我返回带有或没有'firebase-admin'模块的承诺时,该功能会在60秒后超时。

这是我的代码:

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
      });
    }
});

2 个答案:

答案 0 :(得分: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 :(得分:-1)

原来问题不在代码中。

解决了它更新Node.js& NPM

使用"当前"版本https://nodejs.org/en/