Javascript Firebase数据库ref on首次未更新

Javascript Firebase数据库ref on首次未更新,javascript,firebase,react-native,firebase-realtime-database,expo,Javascript,Firebase,React Native,Firebase Realtime Database,Expo,我正在用react native和firebase构建一个聊天应用程序。 当用户登录时,以前的消息必须在第一次启动时加载,但它提供了空数组以保证在第一次连接时,它会显示。。。 我正在使用零食,我必须更改代码以查看聊天记录(以便更新设备)。 如何在首次启动时加载 编辑: 火基结构 userName: -rooms: -otherUser: -messages -name 代码: 而这正发生在我身上: const loadRequiredMaterials = async

我正在用react native和firebase构建一个聊天应用程序。 当用户登录时,以前的消息必须在第一次启动时加载,但它提供了空数组以保证在第一次连接时,它会显示。。。 我正在使用零食,我必须更改代码以查看聊天记录(以便更新设备)。 如何在首次启动时加载

编辑: 火基结构

userName:
-rooms:
  -otherUser:
     -messages
     -name
代码:

而这正发生在我身上:

const loadRequiredMaterials = async () => {
      return new Promise(async (resolve, reject) => {
        //var loadedRooms = [...rooms]
        var loadedRooms = []
          await on(oldRooms => {
            loadedRooms = [oldRooms, ...loadedRooms]
          });
        await resolve([loadedRooms]);
      })
    }
    if (firebase.auth().currentUser) {
      console.log(firebase.auth().currentUser)
      loadRequiredMaterials()
      .then((result)=> {
        console.log(result)
        setRooms(result[0]);
      })

    }

请至少向我们提供部分代码和firebase数据结构。我已经更新了@ArtemArkhipov的代码
const loadRequiredMaterials = async () => {
      return new Promise(async (resolve, reject) => {
        //var loadedRooms = [...rooms]
        var loadedRooms = []
          await on(oldRooms => {
            loadedRooms = [oldRooms, ...loadedRooms]
          });
        await resolve([loadedRooms]);
      })
    }
    if (firebase.auth().currentUser) {
      console.log(firebase.auth().currentUser)
      loadRequiredMaterials()
      .then((result)=> {
        console.log(result)
        setRooms(result[0]);
      })

    }