Запуск поиска по Firebase после - PullRequest
0 голосов
/ 30 апреля 2020

Я пытаюсь запустить этот код последовательно и получить данные, помещенные в массив перед установкой состояния:

onFirebaseValueChanged = snapshot => {
   //Above is a listener for changes
    dataArray = []


    snapshot.forEach(childSnapshot => {

        const childData = childSnapshot.val();
        let parentKey = childSnapshot.ref.key

        let bankKey = childData.key
        let claim = childData.adminClaim

        if(claim == false){
            //Accessing different part of database for one time read
            Firebase.database().ref('/allQuestions/' + bankKey).once('value')
            .then(snapshot => {

                    const childData = snapshot.val()
                    let answer = childData.Answer
                    let Question = childData.Question
                    let Volunteer = childData.Volunteer
                    let Title = childData.Title
                    let Asker = childData.Asker
                    dataArray.push({ text: 'Title:' + Title + '\nQuestion: ' + Question + "\nAnswer: " + answer, Volunteer: Volunteer, keyB : bankKey, parentKey:parentKey, Asker:Asker});

                    //location 1 - pushing data into array

            })

        }

    });


    this.setState({dataArrayDisplay:dataArray})
    //location 2 - forcing render by update and using to display

  }

Но проблема, с которой я сталкиваюсь, заключается в расположении 2, работающем до расположения 1, которое предотвращает код для правильной работы и установки состояния в самом конце

Однако я получаю правильные результаты, когда есть более одного элемента до l oop, но только с одним ничего не появляется.

Кто-нибудь знает, что происходит?

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...