code: def on_snapshot(self, callback):
          
          return Watch.for_query(
              self, callback, document.DocumentSnapshot, document.DocumentReference
          )
docs: Monitor the documents in this collection that match this query.
  
          This starts a watch on this query using a background thread. The
          provided callback is run on the snapshot of the documents.
  
          Args:
              callback(~.firestore.query.QuerySnapshot): a callback to run when
                  a change occurs.
  
          Example:
              from google.cloud import firestore_v1beta1
  
              db = firestore_v1beta1.Client()
              query_ref = db.collection(u'users').where("user", "==", u'Ada')
  
              def on_snapshot(docs, changes, read_time):
                  for doc in docs:
                      print(u'{} => {}'.format(doc.id, doc.to_dict()))
  
              # Watch this query
              query_watch = query_ref.on_snapshot(on_snapshot)
  
              # Terminate this watch
              query_watch.unsubscribe()