Firebase .then com .on ('valor')

Estou tentando.then() trabalhar com.on() mas só funciona com.once().

eu receboplayersRef.on(...).then is not a function, ao tentar comon()

Então, o que eu tenho agora é o seguinte:

   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))
      })
    })

Mas eu não gosto do fato de que ele está consultando o juiz duas vezes.

Como eu iria conseguireach resposta do jogador neste exemplo? O que seria maiscorrigir maneira? Porque eu não acho que é assim que os desenvolvedores do Firebase pretendem isso.

E qual é o raciocínio de que não é implementado para.on()? PorqueplayersSnapshot.forEach(...).then também não é uma função ... Como executo algoapenas uma vez sempre que.on('value') gatilhos?

questionAnswers(1)

yourAnswerToTheQuestion