code: def for_document(
          cls,
          document_ref,
          snapshot_callback,
          snapshot_class_instance,
          reference_class_instance,
      ):
          
          return cls(
              document_ref,
              document_ref._client,
              {
                  "documents": {"documents": [document_ref._document_path]},
                  "target_id": WATCH_TARGET_ID,
              },
              document_watch_comparator,
              snapshot_callback,
              snapshot_class_instance,
              reference_class_instance,
          )
docs: Creates a watch snapshot listener for a document. snapshot_callback
          receives a DocumentChange object, but may also start to get
          targetChange and such soon
  
          Args:
              document_ref: Reference to Document
              snapshot_callback: callback to be called on snapshot
              snapshot_class_instance: instance of DocumentSnapshot to make
                  snapshots with to pass to snapshot_callback
              reference_class_instance: instance of DocumentReference to make
                  references