Я создаю Gatsby.js сайт.
Сайт использует плагин gatsby-source-firestore для подключения к источнику данных Firestore .
Мой вопрос такой.Как я могу запросить реляционные данные?Как, например, выборка данных из двух моделей одновременно, где modelA [x] = modelB [y]
Я не очень понимаю распознаватели.Я не думаю, у меня есть.
Обратите внимание, я не рассматриваю graph.cool в настоящее время.Я хотел бы придерживаться Firebase.Я сделаю сопоставление реляционных данных в чистом JS, если нужно (не GraphQL).
Вот как выглядит мой gatsby-config.js :
{
resolve: 'gatsby-source-firestore',
options: {
credential: require('./firebase-key.json'),
databaseURL: 'https://testblahblah.firebaseio.com',
types: [
{
type: 'Users',
collection: 'users',
map: user => ({
firstName: user.firstName,
lastName: user.lastName,
email: user.email,
ownsHat: user.ownsHat,
hatId: user.hatId
})
},
{
type: 'Hats',
collection: 'hats',
map: hat => ({
hatType: hat.hatType,
hatUserId: hat.hatUserId,
hatId: hat.hatId
})
}
]
}
},
Это включает две плоские модели данных.Я могу сделать запрос на странице:
any-page.js
export const query = graphql`
query {
allUsers {
edges {
node {
...UserFragment
}
}
}
}
`
Я ищу запрос, который позволяет мне написать один запросвнутри другого, т.е. запроса реляционных данных в запросе.
export const query = graphql`
query {
allUsers {
edges {
node {
...UserFragment {
hats (user.userId == hat.userId){
type
hatId
}
}
}
}
}
}
`
Как вы понимаете, это составляет: Как выполнять несколько запросов GraphQL к реляционным данным.
Учитывая характер плоского JSON в Firestore, это усложняет реляционный аспект GraphQL.
Я действительно хочу лучше понять это и был бы очень признателен за то, чтобы указывать правильный путь.
Я действительно заинтересован в использовании GraphQL и Firebase.
Спасибо!