2017-06-15 39 views
3

Firebaseに簡単な関数をデプロイしようとしていますが、いくつかの問題があります。 .onceを参照に使用しようとするたびにFirebaseはそれが関数ではないことを私に伝えます。私はまた、次のことを試してみました。ここに私のコードはFirebase関数エラー:.onceが関数ではありません

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から子どもの数を得るための修正や別の方法を知っていますか?

ありがとうございます。

答えて

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

+0

うん、総理にかなっています。ありがとうございました。 – ESchlotter

関連する問題