Firebase:在firebase-function触发器承诺完成后立即收到通知

时间:2018-02-06 08:28:27

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

在我的应用程序中,我将一些对象推送到我的firebase-database并在此之后(在then-promise完全填充之后)我从数据库中获取对象(使用返回的键)(使用on-value方法)。

此外,我使用firebase-functions对推送的对象进行了一些更改。

如何在更改后而不是之前收到对象(在应用程序中)? (像其他普通的后端服务一样)

1 个答案:

答案 0 :(得分:1)

我希望这会对你有所帮助,我没有测试过这段代码,但它可以帮助你朝着正确的方向发展。

也不要在生产中使用这个确切的代码,还有很大的改进空间,这只是一个示例代码。

exports.testFunction = functions.https.onRequest((req, res) => {
  if (req && req.body) {
      if (
        req.body.hasOwnProperty('name') &&
        req.body.hasOwnProperty('age')
      ) {
            const person = {
                name: req.body['name'],
                age: req.body['age']
            }

            // Make some changes to the person object
            person['hobby'] = 'Programmer';

            // Add object to FireStore
            admin
            .firestore()
            .collection('/persons')
            .add(person)
            .then((success) => {
                // Return the added & changed person
                res.status(201).send(JSON.stringify(person));
            })
            .catch((error) => {
                // Error
                console.error('Something broke', error)
                res.status(500).send();
            });
      }
      else {
          // Error
          res.status(500).send({err: 'Missing property'});
      }
  }
  else {
      // Error
    res.status(500).send({err: 'Missing something'});
  }
});