无法使用 firebase 实时数据访问我的数组中的数据

Can not access the data in my array using firebase Realtime data

所以我在我的数据库中创建了 2 个播放列表,播放列表名称和 ID。我正在尝试显示我创建的播放列表列表。我能够 Console.log(playlists) 得到我的 2 个对象的数组,其中包含正确的数据。但我无法访问数组中的对象。我尝试了 forEach、map,即使只是查看第一个索引,我的控制台中也总是未定义。会喜欢一些帮助。查看控制台结果的图片 snipit

function getPlayLists(b) {
  firebase.auth().onAuthStateChanged(function (user) {
    if (user) {
      var uid = auth.currentUser.uid;
      var playlists = [];
      database.ref(uid).on("value", function (snapshot) {
        snapshot.forEach(function (childSnapshot) {
          playlists.push({
            playlistName: childSnapshot.val().name,
            id: childSnapshot.val().idKey,
          });
        });
      });
      console.log(playlists);
      console.log(playlists[0]);
    } else {
      console.log("No user is signed in.");
    }
  });
}

enter image description here

您在每次更新值时都绑定了一个函数,因此在定义的回调中记录这些值并使用映射函数从快照中获取值

  database.ref(uid).on("value", (snapshot) => {
    const playlists = snapshot.map((childSnapshot) => ({
      playlistName: childSnapshot.val().name,
      id: childSnapshot.val().idKey
    }));
    console.log(playlists);
    console.log(playlists[0]);
  });

您的 console.log 语句在用数据填充播放列表之前被调用。将 console.log 移动到传递给 database.ref(uid).on 方法的函数中