Firebase函数错误:.once不是函数

时间:2017-06-15 18:07:59

标签: javascript node.js firebase firebase-realtime-database

我正在尝试将一个简单的功能部署到Firebase,但我遇到了一些困难。每次我尝试在参考上使用.once时,Firebase会告诉我它不是一个函数。这是我的代码

exports.testFunction = functions.database.ref('/Rooms/{firstID}/{pushId}/On').onWrite(event => {
  const value = event.data.val();
  var ref = functions.database.ref(roomNum);
  return ref.once('value').then(snapshot => {
    console.log(snapshot.numChildren);
    return true;
  }); });

我也尝试了以下内容:

firebaseRef.once('value', function(dataSnapshot) {
  console.log(snapshot.numChildren);
});

似乎没什么用。有没有人知道修复或以不同的方式从ref / snapshot中获取子项数?

谢谢。

1 个答案:

答案 0 :(得分:5)

functions.database.ref与您在客户端上使用的对象不同。它的唯一目的是使用它唯一的功能onWrite来监听写入。

您可以通过event参数获取您想要的参考资料。

var ref = event.data.ref

这是对您在onWrite中指定的路径的引用。

如果您想要根参考:

var rootRef = event.data.ref.root

进一步阅读:https://firebase.google.com/docs/reference/functions/functions.database