Попытка подключить данные, извлеченные из таблицы в Gatsby Graphql в Алголию, плагин не работает - PullRequest
0 голосов
/ 11 октября 2018

https://github.com/algolia/gatsby-plugin-algolia

этот плагин не работает в моем gatsby-config, когда я запускаю сборку (не заполняет мой индекс algolia) - я уже поместил данные в мойИндексирование с использованием algoliasearch и файла json, но я хочу, чтобы это автоматически подключалось при сборке - поэтому данные всегда текут с моими данными.

Я пробовал 'gatsby-plugin-algolia'подход через документацию по github (находится в моем файле gatsby-config.js)

const myQuery = `{
  allSitePage {
    edges {
      node {
        # try to find a unique id for each node
        # if this field is absent, it's going to
        # be inserted by Algolia automatically
        # and will be less simple to update etc.
        objectID: id
        component
        path
        componentChunkName
        jsonName
        internal {
          type
          contentDigest
          owner
        }
      }
    }
  }
}`;

const queries = [
  {
    query: myQuery,
    transformer: ({ data }) => data.allSitePage.edges.map(({ node }) => node), 
    indexName: 'cardDemo',
  },
];

module.exports = {
  plugins: [
        {
      resolve: 'gatsby-source-airtable-linked',
      options: {
        apiKey: process.env.MY_API_KEY,
        tables: [
          {
            baseId: process.env.MY_BASE_ID,
            tableName: 'Streams',
            tableView: 'DO NOT MODIFY',
          },
        ],
      },
    },
    {
      resolve: 'gatsby-plugin-algolia',
      options: {
        appId: process.env.MY_AGOLIA_APP_ID,
        apiKey: process.env.MY_AGOLIA_API_KEY,
        indexName: 'cardDemo',
        queries,
        chunkSize: 1000000,
      },
    },
  ],
};

Я также выделил «myQuery» для более конкретного экземпляра, который я использую для компонента через воздушную таблицу, показанного ниже

const myQuery = `{
      items: allAirtableLinked(
      filter: {
        table: { eq: "Items" }
      }
    ) {
      edges {
        node {
          id
          data {
            title
            thumbnail_url
            thumbnail_alt_text
            url_slug
            uberflip_stream_id
            uberflip_id
          }
        }
      }
    }
    }`;

если у кого-нибудь этот плагин работает и работает - я определенно мог бы использовать некоторые советы о том, как это работает (не так много документации по этому пакету)

спасибо!

1 Ответ

0 голосов
/ 12 октября 2018

разобрался!Если вы столкнулись с этой же проблемой, выполните следующие действия:

  1. проверьте, что у вас есть правильный ключ API
  2. , убедитесь, что метод преобразователя изменяется в соответствии с объектом, запрошенным в graphql.мое должно было измениться на это:

transformer: ({ data }) => data.items.edges.map(({ node }) => node) 
проверьте, что ваш запрос работает в graphql, убедитесь, что он синтаксически правильный и запрашивает правильные данные.запрос, который я использовал, был

const pageQuery = `query {
  items: allAirtableLinked(
    filter: {
      table: { eq: "Items" }
      data: { hubs: { eq: "cf4ao8fjzn4xsRrD" } }
    }
  ) {
    edges {
      node {
        id
        data {
          title
          thumbnail_url
          thumbnail_alt_text
          duration
          url_slug
          asset_type
          uberflip_stream_id
          uberflip_id
        }
      }
    }
  }
}`;
наконец, будет чище, если вы абстрагируете запрос и запросы в каталог ultil, размещенный в src, а затем потребует его в файле конфигурации, чтобы он был чище:

я получил эту идею отэто репо, очень полезно!проверить этот пример

...