Нужно ли больше вложенных уровней для чтения простого (почти плоского) FireBase - PullRequest
0 голосов
/ 11 октября 2019

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

Все это работает хорошо, за исключением одного - издеваться над моим опытом (или я не знаю, как засунуть документы Firebase). В следующем коде .js перечисляется только последняя запись, введенная в разных коллекциях под названием «OPnotes». (Есть еще одно свойство с OFnotes).

представление данных, которые я пытаюсь отобразить в Интернете, выглядит следующим образом:

 |
OPnotes
 |   + -- OF-Ave-g9: "OF-Ave g9   ant nest"
 |   + -- OPA-2A-j5: "OPA-2A j5   excessive sap"
 |   + -- OPA-SR-k2: "OPA-SR k2   irrigation leak"
 |

Я закомментировал переменную childkey, потому что яне могу заставить его что-либо делать. Я бы подумал, что snapshot.forEach( будет отвечать за выполнение итерации.

<script>
    var noteRef = firebase.database().ref('OPnotes');

    noteRef.on('value', function(snapshot) {
        // this next line should set up iterations of each child
        snapshot.forEach(function(childSnapshot) {

            // var childKey = childSnapshot.key;
            var note = childSnapshot.val();
            document.getElementById("sh owNote").innerHTML = note;

         });
    });
</script>

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

По сути, вопрос в том, нужно ли мне делать более сложную схему для чтения?

1 Ответ

0 голосов
/ 11 октября 2019

snapshot.forEach действительно зацикливается на каждом дочернем узле в результате. Но затем вы делаете document.getElementById("sh owNote").innerHTML = note, что означает, что каждый раз, когда вы перезаписываете все, что было в элементе HTML до этого. Таким образом, в конце цикла вы получите только значение последнего узла в HTML.

То, что вы, вероятно, ищете, является чем-то ближе к:

noteRef.on('value', function(snapshot) {
    document.getElementById("sh owNote").innerHTML += "";
    snapshot.forEach(function(childSnapshot) {
        var note = childSnapshot.val();
        document.getElementById("sh owNote").innerHTML += note + "<br/>";
     });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...