Using Flutter and Firestore I frequently setup this block of code.

DocumentReference reference = Firestore.instance.collection('movies').document(uid);
reference.snapshots().listen((documentSnapshot) {
  <respond to updates>

This fires the listen for the initial read and any changes.

However sometimes I want to do an await for the first read and then setup the listener for changes. How can I do that? Specifically how do I await for the first read, and second make the listen not fire unless there are any changes?