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

Ove*_*wed 3 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;
  }); });
Run Code Online (Sandbox Code Playgroud)

我也尝试过以下方法:

firebaseRef.once('value', function(dataSnapshot) {
  console.log(snapshot.numChildren);
});
Run Code Online (Sandbox Code Playgroud)

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

谢谢.

Eri*_*uan 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