#firebase #firebase-realtime-database #graphql #apollo-server
#firebase #firebase-realtime-database #graphql #apollo-сервер
Вопрос:
У меня есть сервер graphql, подключенный к моему Firebase RTD и развернутый на heroku.
Когда я запускаю свой сервер в heroku, запрос к reservations
распознавателю занимает целую вечность, и в конечном итоге игровая площадка кричит Unexpected token < in JSON at position 0
Я подозреваю, что это тайм-аут от Firebase, но как мне приступить к отладке этого? (Heroku ничего не регистрирует об ошибке).
Вы можете попробовать сервер для себя: https://filex-database.herokuapp.com
Конкретный запрос, который вызывает у меня проблемы, это:
query {
reservations {
code
name
}
}
const db = require("../datasources/db");
const masterlist = require("../datasources/masterlist.js");
const getById = (key: string, id: string) =>
db[key].filter((item) => item.id === id)[0];
const firebaseQuery = (context: { firebaseClient }, endpoint: string) => {
const finalEndpoint =
endpoint.charAt(0) === "/" ? endpoint : "/".concat(endpoint);
const baseUrl = "/workshops";
return context.firebaseClient
.database()
.ref(`${baseUrl}${finalEndpoint}`)
.once("value")
.then((snapshot) => snapshot.val());
};
const Query = {
workshops: () => db.workshops,
workshop: (_, args) => getById("workshops", args.id),
options: () => db.options,
option: (_, args) => getById("options", args.id),
// this resolver is causing me trouble
reservations: async (_, __, context) => {
const data = await firebaseQuery(context, "/applicants");
return Object.values(data);
},
reservation: async (_, args, context) => {
const data = await firebaseQuery(context, `/applicants/${args.id}`);
return data;
},
};
module.exports = { Query };
РЕДАКТИРОВАТЬ: я создал еще один простой сервер, используя ту же технологию и предоставляя только этот распознаватель, а также тайм-аут (хотя локально все работает нормально)