如何获取添加到Firebase云功能实时数据库中的最后一项

时间:2019-07-01 06:24:58

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

我有一个具有以下结构的简单实时firebase数据库

通知:

  • 100000
    • 信息:“这是我的信息0”
  • 100001
    • 信息:“这是我的信息1”
  • 100002
    • 信息:“这是我的信息2”

我需要阅读最后一个孩子的信息,并在index.js中具有此功能

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

exports.helloWorld = 
functions.database.ref('/notification').onWrite((snapshot, context) => {
   const myData = context.info;
  console.log('data: '+myData);
});

但是控制台日志给我一个错误:

helloWorld 函数返回了未定义的预期承诺或值

,我希望进入控制台:数据:这是我的信息2

我的代码有什么问题?

谢谢!

更新:

读取我需要更改的最后一个值

const myData = context.info;

收件人:

const myData = snapshot.after.val();

2 个答案:

答案 0 :(得分:0)

您需要在触发函数中返回某些内容。 null是可以接受的。如果要在每次创建时都得到最后一个孩子,请使用onCreate而不是onWrite。医生说:

  

onCreate(),在实时数据库中创建新数据时触发。

您可能要检查以下示例:example

答案 1 :(得分:0)

我需要更改:

const myData = context.info;

收件人:

const myData = snapshot.after.val();

然后我得到最后一个项目的值。