Как хранить узлы двоичного дерева в FireStore - PullRequest
0 голосов
/ 15 января 2020

Я хочу создать двоичное дерево в реагировать. Я использую компонент реагировать-d3-дерево для отображения дерева. Для response-d3-tree данные должны быть в формате

const myTreeData = [
  {
    name: 'Top Level',
    attributes: {
      keyA: 'val A',
      keyB: 'val B',
      keyC: 'val C',
    },
    children: [
      {
        name: 'Level 2: A',
        attributes: {
          keyA: 'val A',
          keyB: 'val B',
          keyC: 'val C',
        },
      },
      {
        name: 'Level 2: B',
      },
    ],
  },
];

Как хранить данные в firestore, чтобы я мог получить их и получить в виде вышеуказанного формата массива?

1 Ответ

1 голос
/ 15 января 2020

Вам просто нужно передать переменную myTreeData, инкапсулированную в объект, следующим образом:

const db = firebase.firestore();

const myTreeData = [
  {
    name: 'Top Level',
    attributes: {
      keyA: 'val A',
      keyB: 'val B',
      keyC: 'val C',
    },
    children: [
      {
        name: 'Level 2: A',
        attributes: {
          keyA: 'val A',
          keyB: 'val B',
          keyC: 'val C',
        },
      },
      {
        name: 'Level 2: B',
      },
    ],
  },
];

db.collection('yourCollection').add({tree: myTreeData})
.then(function(newDocRef) {
    return newDocRef.get();
}).then(function(doc) {
    console.log("JavaScript Object:", doc.data().tree);
    console.log("JSON:", JSON.stringify(doc.data().tree));
}).catch(function(error) {
    console.log("Error getting document:", error);
});

Приведенный выше код сохраняет объект {tree: myTreeData} в документе Firestore и возвращает его документ для записи значения поля tree в консоли (как JavaScript объект и как JSON)

...