Pu sh массив в firebase в дочерней позиции? - PullRequest
0 голосов
/ 29 марта 2020

У меня есть массив из таблицы, которую я извлек, и я пытаюсь создать sh в родительском объекте из дочернего объекта. Я понимаю, что FireBase на самом деле не предназначен для массивов, так как же мне лучше? Вот что у меня есть;

const exerciseName = document.getElementById("exercise-search");
const setAmount = document.getElementById("dynamicSet").innerHTML;

var HoeveelheidArr=[];
var Gewicht=[];

function getData(){
    $('#resultTable .HoeveelheidField > input ').each(function() {
        HoeveelheidArr.push($(this).val());
    });
    $('#resultTable .GewichtField > input').each(function() {
        Gewicht.push($(this).val());
    });
    console.log(HoeveelheidArr);
    console.log(Gewicht);
}

Вот часть, которую я застрял, часть, которую я пытаюсь отправить массив в БД и поместить в объект "setAm":

function writeData(){
    firebase.database().ref("Exercise").set({
        nameExercise: exerciseName.value,
        setAm: setAmount,
    });
    firebase.database().ref("Exercise/setAm")({
        HoeveelheidArr,
        Gewicht,
    });
}

Как мне лучше всего go обойти это? Я получаю сообщение об ошибке

Ошибка типа: firebase.database (...). Ref (...) не является функцией

1 Ответ

1 голос
/ 29 марта 2020

У вас есть синтаксическая ошибка в последнем операторе, поскольку вы пропускаете вызов set:

firebase.database().ref("Exercise").set({
    nameExercise: exerciseName.value,
    setAm: setAmount,
});
firebase.database().ref("Exercise/setAm").set({ // this line changed
    HoeveelheidArr,
    Gewicht,
});

Результат этих двух операторов также может быть достигнут с помощью одного вызова в set:

firebase.database().ref("Exercise").set({
    nameExercise: exerciseName.value,
    setAm: {
      HoeveelheidArr,
      Gewicht,
    }
});

Если вы хотите создать список дочерних узлов в Exercise [sic], вы можете использовать для этого метод push() Firebase.

firebase.database().ref("Exercise/setAm").push({
    HoeveelheidArr,
    Gewicht,
});
firebase.database().ref("Exercise/setAm").push({
    HoeveelheidArr,
    Gewicht,
});

Это создает два дочерних узла в setAm, каждый с уникальным ключом.

Подробнее о push() относительно использования массива см. В блоге Рекомендации: Массивы в Firebase .

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