Javascript 从Node.js云函数添加Firebase Firestore DB侦听器

Javascript 从Node.js云函数添加Firebase Firestore DB侦听器,javascript,node.js,firebase,google-cloud-firestore,google-cloud-functions,Javascript,Node.js,Firebase,Google Cloud Firestore,Google Cloud Functions,我的问题,无法从write DB回调读取数据,请查看下面的详细信息 我正在使用带有node.js云函数的firestore,我需要将DB listener设置为messages collection,下面是将listener设置为数据和数据结构的代码,我的问题是我无法检查以下数据结构 这是第二个级别和添加的消息 建议如何从上述数据中读取数据您的问题很可能来自snap不存在的事实。构建引用的方式可能有错误 如文档()中所述,建议在尝试获取其字段值之前检查文档是否存在 请参见上面引用的文档中的示

我的问题,无法从write DB回调读取数据,请查看下面的详细信息

我正在使用带有node.js云函数的firestore,我需要将DB listener设置为messages collection,下面是将listener设置为数据和数据结构的代码,我的问题是我无法检查以下数据结构

这是第二个级别和添加的消息


建议如何从上述数据中读取数据

您的问题很可能来自snap不存在的事实。构建引用的方式可能有错误

如文档()中所述,建议在尝试获取其字段值之前检查文档是否存在

请参见上面引用的文档中的示例(对于node.js):

var cityRef = db.collection('cities').doc('SF');
var getDoc = cityRef.get()
.then(doc => {
  if (!doc.exists) {
    console.log('No such document!');
  } else {
    console.log('Document data:', doc.data());
  }
})
.catch(err => {
  console.log('Error getting document', err);
});
您能否在代码中检查snap是否真的存在,如下所示

exports.sendNotificationDependsOnEvent = functions.firestore.document('events/{event}/messages/{message}')
.onCreate((snap, context) => {
    if (!snap.exists) {
      console.log('No such document!');
    } else {
      console.log('Document data:', snap.data());
    }
});

控制台将登录功能日志

文档显示它应该是snap.data()。看到或看到。这可能是另一个问题。我尝试了它们,但snap.data()不起作用,它在云函数中引发异常,数据不是函数,但在示例中,它在查询中显示了一个级别,在我的示例中,有两个级别可以访问内部集合,您有什么建议吗?您可以检查snap是否存在。如果(!snap.exists){console.log('没有这样的文档!');}其他{console.log('文档数据:',snap.data());}
exports.sendNotificationDependsOnEvent = functions.firestore.document('events/{event}/messages/{message}')
.onCreate((snap, context) => {
    if (!snap.exists) {
      console.log('No such document!');
    } else {
      console.log('Document data:', snap.data());
    }
});