あなたが戻って古典的なJavaScriptの表記に切り替える場合は、コードが彼のと同等です:
function callback(snap) {
console.log(snap.val())
}
//creating references
const dbRefObject = firebase.database().ref().child("object");
//syn object changes
dbRefObject.on('value', callback);
preObject.innerHTML = JSON.stringify(snap.val(), null, 3);
あなたが最後の行にsnap
にアクセスすることができない理由は、おそらく簡単だことで:snap
変数だけですコールバック関数で定義/使用可能。
snap
をグローバルに宣言しても、コールバックが非同期でトリガーされるため、コードが機能します。だから今度はsnap.val()
と呼ばれる石灰によって、コールバック(とsnap
)はまだ利用できません。
溶液をにスナップショットコールバックへのアクセスを必要とするコードを移動することである。
//creating references
const dbRefObject = firebase.database().ref().child("object");
//syn object changes
dbRefObject.on('value', snap => {
preObject.innerHTML = JSON.stringify(snap.val(), null, 3);
});
はSOへようこそ。どのように何を尋ねるのかを知るには[ヘルプ]をご覧ください。ヒント:任意のコードと修正要求の代わりに[mcve]を投稿してください。スナップは、定義されたhtmlフィールドでない限り、突然どのように値を取得しますか?もしそうなら、フィールドはどこですか? – mplungjan