私はFirebaseデータベースから読み込んでオブジェクトの配列を作成する関数を持っています。変数key
を定義しましたが、まだ使用できません。変数が定義されていないという参照エラー
var usersList = [];
const ref = firebase.database().ref()
function fetchUsers() {
ref.child('users').once('value').then(snap => {
var promises = [];
snap.forEach(childSnap => {
var key = childSnap.key
promises.push
(ref.child(`users/${key}/points`).once('value')
);
});
return Promise.all(promises);
}).then(function(snapshots) {
return snapshots.map(snapper => {
var points = snapper.val()
return {uid: key, points: points};
})
}).then(function(usersList) {
console.log(usersList)
})
}
そして、これは私が取得エラーです...
(node:11724) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): ReferenceError: key is not defined
私はちょうど行う場合:key = childSnap.key
は、その後、すべてのオブジェクトのuid
は同じです。
';'が必要な箇所を深く学ぶことを強くお勧めします。 (これは非常に単純です:ステートメントに付けられたブロックで終わらないすべてのステートメントの終わりです。 'x = function(){};'の後に、ステートメントではなく式にアタッチされているので、 'for (ブロックがステートメントに付加されているため、(...){} ')、JavaScriptを使用するかどうか、あるいはJavaScriptに組み込まれている「自動セミコロン挿入」エラー修正メカニズムに頼ることができます。上記では、あなたは半分を供給しており、半分はASIに依存しています。 –
また、 'function'関数が必要とされない' function'関数よりも、矢印関数を優先して使用することを常にお勧めします。 –