Почему данные в Firebase не генерируют новые страницы в Гэтсби? - PullRequest
0 голосов
/ 09 октября 2018

При обновлении firebase он обновляет узлы в gatsby, который затем должен вызвать createPage с новым узлом, чтобы создать новую страницу.

Однако этого не происходит.Обновление узлов и кажется, что createPage вызывается, но страница не генерируется до тех пор, пока я не перезапущу сервер.

Похоже, что в уроках люди справляются с этим, однако мой код не отличается.

exports.sourceNodes = async ({ actions }) => {
  const { createNode } = actions;
  return new Promise((resolve, reject) => {
    firebase.database().ref('widgets')
      .on('value', snap => (
        snap.forEach((widget) => {
          const productNode = {
            id: `${widget.val().ref}`,
            parent: null,
            children: [],
            internal: {
              type: 'Widget',
              contentDigest: 'fgdgsgfdd' + widget.val().ref,
            },
            title: `${widget.val().title}`,
          };
          createNode(productNode);
          resolve();
        })));
  });
};

exports.createPages = ({ graphql, actions }) => {
  const { createPage } = actions;
  return new Promise((resolve, reject) => {
    graphql(`
    {
      allWidget {
        edges {
          node {
            title
            id
          }
        }
      }
    }
  `).then((result) => {
    result.data.allWidget.edges.forEach(({ node }) => {
      console.log(node.title)
        createPage({
          path: 'widgets/' + node.id,
          component: path.resolve('./src/templates/widget.js'),
          context: {
            title: node.title,
            id: node.id,
          },
        });
      });
      resolve();
    }).catch(() => reject());
  });
 };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...