@@ -609,38 +609,42 @@ final class _StreamHandlers<T, SyncCallback> {
609609 /// Unregisters the native callback on the database.
610610 final void Function () _unregister;
611611
612- late final Stream <T > stream = Stream .multi (
613- (newListener) {
614- if (_database._isClosed) {
615- newListener.close ();
616- return ;
617- }
618-
619- void addListener () {
620- _addAsyncListener (newListener);
621- }
612+ Stream <T >? _stream;
622613
623- void removeListener () {
624- _removeAsyncListener (newListener);
625- }
626-
627- newListener
628- ..onPause = removeListener
629- ..onCancel = removeListener
630- ..onResume = addListener;
631- // Since this is a onListen callback, add listener now
632- addListener ();
633- },
634- isBroadcast: true ,
635- );
614+ Stream <T > get stream => _stream! ;
636615
637616 _StreamHandlers ({
638617 required DatabaseImplementation database,
639618 required void Function () register,
640619 required void Function () unregister,
641620 }) : _database = database,
642621 _register = register,
643- _unregister = unregister;
622+ _unregister = unregister {
623+ _stream = Stream .multi (
624+ (newListener) {
625+ if (_database._isClosed) {
626+ newListener.close ();
627+ return ;
628+ }
629+
630+ void addListener () {
631+ _addAsyncListener (newListener);
632+ }
633+
634+ void removeListener () {
635+ _removeAsyncListener (newListener);
636+ }
637+
638+ newListener
639+ ..onPause = removeListener
640+ ..onCancel = removeListener
641+ ..onResume = addListener;
642+ // Since this is a onListen callback, add listener now
643+ addListener ();
644+ },
645+ isBroadcast: true ,
646+ );
647+ }
644648
645649 bool get hasListener => _asyncListeners.isNotEmpty || _syncCallback != null ;
646650
0 commit comments