Firebaseからデータを取得しています。値を抽出して配列に保存したい。その後、私はその配列値をアプリケーションの文字列として使用します。問題は、DBから配列に値をプッシュするときです。配列の最後には定義されていません。そして、私は、配列(carUserDetails [0])はundefinedを返しますが、文字列を返すべき "BMW"配列に値をプッシュすると、最後に未定義が追加されます
var UserID = firebase.auth().currentUser.uid;
var refModels = firebase.database().ref("https://stackoverflow.com/users/" + UserID);
var carUserDetails = [];
refModels.once('value').then(function (snapshot) {
snapshot.forEach(function (childSnapshot) {
var usersValue = childSnapshot.val(); //get the values of the object
carUserDetails.push(
usersValue.carMake,
usersValue.carYear,
usersValue.carModel,
usersValue.carTrim
);
});
});
console.log(carUserDetails);
console.log(carUserDetails[0]) // returns undefined too
の値を確認したいときだから何が問題になる可能性がある
チェック後にコンソールを置く必要があります。そして、2回目の反復でusersValue.carMakeは定義できません – Lalit
'snapshot'を印刷するとどうなりますか? – smartmouse
pushを押した直後にconsole.logを追加して、uservalueを出力し、おそらくループが2回実行されているかを確認してください。あなたはcarUserDetailsを取得しています。非同期コードの実行のために未定義です –