0
整数の増分が奇妙に動作しています。最後のデータベース呼び出しでは、0,1,2からではなく、2,2,2に設定されています。誰もが問題を参照してください?ファイヤーベースコールの内部での整数の増分
let chats = firebase.database().ref(`/userProfile/${this.userAuth.uid}/messages/`);
let profiles = firebase.database().ref('/userProfile');
chats.on('value', (snapshot) => {
let i = -1;
this.messagesList = [];
for (let key in snapshot.val()) {
i++;
chats.child(key).limitToLast(1).on('value', (data) => {
this.messagesList[i] = data.val();
for (let message in this.messagesList[i]) {
this.messagesList[i].conversation_key = message;
}
console.log(i); // RETURNS 0,1,2
});
console.log(i); // RETURNS 0,1,2
profiles.child(key).on('value', (data) => {
console.log(i); // RETURNS 2,2,2
this.messagesList[i].firstname = data.val().firstname;
});
}
});
幸運にもそれを試してみました。/ – naghulam
申し訳ありませんが、私は別の方法を意味しました。 chats.childとi ++をprofiles.childのコールバックに移動します。問題はまだ述べられているとおり、forループはprofile.childの前に完了します。増分をprofiles.childの増分と同期させる必要があります。 – unitario