Firebase .then con .on ('valor')

Estoy tratando de conseguir.then() trabajar con.on() pero solo funciona con.once().

yo obtengoplayersRef.on(...).then is not a function, al intentarlo conon()

Entonces, lo que tengo ahora es esto:

   let nodesRef = Firebase.database().ref('players')
   let answers = {}
   playersRef.on('value', (playersSnapshot) => {
      playersRef.once('value').then((playersSnapshot) => {
        playersSnapshot.forEach((playerSnapshot) => {
          let playerKey = playerSnapshot.key
          let answersRef = playerSnapshot.child('answers')
          if (answersRef .exists()){
            answers[playerKey ] = answersRef .val()
          }
        })
      }).then(() => {
        console.info(answers);
        dispatch(setPlayerAnswers(answers))
      })
    })

Pero no me gusta el hecho de que está consultando la referencia dos veces.

¿Cómo haría para conseguireach ¿La respuesta del jugador en este ejemplo? ¿Qué sería un máscorrecto ¿camino? Porque no creo que esta sea la forma en que los desarrolladores de Firebase pretendieron esto.

¿Y cuál es el razonamiento de que no está implementado para.on()? PorqueplayersSnapshot.forEach(...).then tampoco es una función ... ¿Cómo ejecuto algo?sólo una vez cuando el.on('value') disparadores?

Respuestas a la pregunta(1)

Su respuesta a la pregunta