2017-06-08 1 views
2
// cloud functions 
exports.listenOnWrite = functions.database.ref('/foo/{id}').onWrite(event => { 
    console.log("did match...."); 
}) 

試合:/ fooの/ 123123および/ fooの/ jk3489firebase.database.refパスのクラウド機能で構文とNodejsは

// node.js 
function startLitener() { 
    firebase.database().ref("/foo/{id}").on('child_added', function (postSnapshot) { 
    console.log("did match...."); 
    }); 
}; 

が何も一致していません

1)質問

refパスの非常に快適な{}構文は、クラウド機能でのみ動作することを理解しています。 または私は何かが恋しいですか?

2)質問私はnodejsサーバー上ref('/foo/{id}')を策定する方法を

答えて

2

Cloud Functionの宣言では、Cloud Functions for Firebaseライブラリの構文を使用しています。これはパス内の{}構文を解釈するモジュールです。

Node.jsプログラム内のコードは、Firebase Admin SDKを使用しています。だから、パスが、異なるモジュールによって解釈され、残念ながら別の構文を使用している:あなたはchild_addedイベントをリッスンしているので

firebase.database().ref("/foo/").on('child_added', function (postSnapshot) { 
    var id = postSnapshot.key; 
}); 

を、あなたのコードは、新しい子のスナップショットで実行されます。 snapshot.keyに電話すると、その子の鍵が得られます。

関連する問題