title: Does the Apollo `subscribeToMore` variables have to match the initial query?
body: <p>Does the Apollo <code>subscribeToMore</code> variables have to match the initial query? For example, if my initial query is </p>
  
  <pre class="lang-js prettyprint-override"><code>const { data, loading, error } = useQuery(INBOX)
  </code></pre>
  
  <p>where the variable is from the id verified in the server(not sent from the client)</p>
  
  <pre class="lang-js prettyprint-override"><code>     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)
       }
  </code></pre>
  
  <p>And if the subscription resolver is like the following:</p>
  
  <pre class="lang-js prettyprint-override"><code>   newInbox: {
          subscribe: (parent, args, { pubsub }, info) =&gt; pubsub.asyncIterator(PUBSUB_NEW_INBOX)
      },
  </code></pre>
  
  <p>would the subscription data be sent to every client in the database since the subscription itself doesn't have the filtering variable or would it recognize that the initial query already had a variable of its own?</p>
  
  <p>In other words, it is necessary to do something like the following?</p>
  
  <pre class="lang-js prettyprint-override"><code> newInbox: {
          subscribe: withFilter(
              (parent, args, { pubsub }, info) =&gt; pubsub.asyncIterator(PUBSUB_NEW_INBOX),
              (payload, variables) =&gt; payload.newInbox.id === variables.id
          )
      },
  </code></pre>
  
  <p>by sending a variable from the client?</p>