Ионная пожарная база, однажды снимок получит странные ошибки - PullRequest
1 голос
/ 23 марта 2019

Я пытаюсь что-то установить с помощью базы данных Firebase в реальном времени, используя заданный код, но перед этим мне нужно использовать один моментальный снимок, чтобы получить значение и обновить его.

Когда у меня есть массив, содержащий строки ex.) array[0] = "aaa"; array[1] = "bbb"; Я должен быть в состоянии получить каждую строку, но я получаю только последний элемент массива.

Прежде всего, массив содержал объект типа { name:"name", num:2, isEmpty:false }, поэтому я попытался исправить его, чтобы он содержал только строку используя array.push("string");, но я все еще получаю ту же ошибку.

Перед использованием once('value',snapshot){...} У меня не было проблем с получением элемента из массива, но когда я использую once(), я получаю только последний элемент массива с недопустимым индексом.

array[0] = 'aaaa'; array[1] ='bbbb';

for(var i=0;i<array.length;i++){
  alert(array[i]+' '+i); 
  //this works fine, alerts aaaa 0, bbbb 1   

  firebase.database().ref('/Something/').child(array[i]).child('size').once('value',snap=>{
     alert(array[i]+' '+i); 
     //alerts bbbb 2, bbbb 2, I really don't get the issue, snap.val() works fine tho but only get bbbb's snap.val()
  });
}

Это пример кода, я пытался установить что-то внутри once(), но он устанавливает только дочерний путь 'bbbb'. Он никогда не идет по пути «аааа».

он должен предупредить aaaa 0, bbbb 1. но почему я получаю bbbb 2, bbbb 2? индекс даже недействителен, длина массива равна 2. Я действительно понятия не имею об этой проблеме. Пожалуйста, кто-нибудь может мне помочь из этого?

* Я перепробовал все, что мог, изменив массив, используя on() вместо once(), используя then() после once() и т. Д., Но по примеру кода он не должен иметь никаких проблем правильно ??

1 Ответ

0 голосов
/ 23 марта 2019

Я исправил эту проблему с помощью функции 'async', любой, кто сталкивался со мной со схожими проблемами, просто сделал другую функцию async, чтобы сделать что-то один раз ()

...