Должны ли переменные Apollo subscribeToMore
соответствовать исходному запросу? Например, если мой начальный запрос
const { data, loading, error } = useQuery(INBOX)
, где переменная от идентификатора, подтвержденного на сервере (не отправлено с клиента)
async inbox(parent, args, { request, prisma }, info) {
const id = await getUserId(request)
if (!user.email) {
throw new Error('You must be logged in!')
}
return prisma.query.user({
where: {
id,
}
},info)
}
И если преобразователь подписки имеет значение например:
newInbox: {
subscribe: (parent, args, { pubsub }, info) => pubsub.asyncIterator(PUBSUB_NEW_INBOX)
},
будут ли данные подписки отправляться каждому клиенту в базе данных, так как сама подписка не имеет переменной фильтрации, или она распознает, что первоначальный запрос уже имел переменную своего own?
Другими словами, необходимо сделать что-то вроде следующего?
newInbox: {
subscribe: withFilter(
(parent, args, { pubsub }, info) => pubsub.asyncIterator(PUBSUB_NEW_INBOX),
(payload, variables) => payload.newInbox.id === variables.id
)
},
, отправив переменную от клиента?