首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >试图将从空气中提取的数据连接到gatsby graphql到algolia,插件不能工作

试图将从空气中提取的数据连接到gatsby graphql到algolia,插件不能工作
EN

Stack Overflow用户
提问于 2018-10-11 17:33:23
回答 1查看 449关注 0票数 2

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

这个插件似乎在我的gatsby-config中工作,当我运行一个build (不填充我的gatsby索引) --我已经使用algoliasearch和一个json文件将数据插入到我的索引中了,但是我希望每当我构建的时候,这个插件就会自动连接起来--所以数据总是与我的可飞行数据同步。

我通过github的文档(放在我的gatsby-config.js文件中)尝试了‘gatsby-plugin’方法。

代码语言:javascript
复制
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,
      },
    },
  ],
};

我还为通过airtable在组件上使用的一个更具体的实例替换了“myQuery”,如下所示

代码语言:javascript
复制
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
          }
        }
      }
    }
    }`;

如果有人运行并运行了这个插件--我肯定需要一些提示来说明如何让这个插件工作(这个包上的文档不多)。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-12 17:43:02

弄明白了!任何遇到同样问题的人,请执行以下步骤:

  1. 检查您是否有正确的API键。
  2. 检查转换器方法是否更改以匹配在graphql中查询的对象。我的不得不改变为:

代码语言:javascript
复制
transformer: ({ data }) => data.items.edges.map(({ node }) => node) 

  1. 检查您的查询是否在graphql中工作,确保它在语法上是正确的,并且正在提取正确的数据。我使用的查询是

代码语言:javascript
复制
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
        }
      }
    }
  }
}`;

  1. 最后,如果您将查询和查询抽象到包含在src中的ultil目录中,则会更干净,然后将其要求到配置文件中,这样就更干净了:

我从这次回购中得到了这个想法,非常有帮助!看看这个例子

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52765928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档