@@ -13,6 +13,7 @@ import dev.gitlive.firebase.Firebase
13
13
import dev.gitlive.firebase.FirebaseApp
14
14
import dev.gitlive.firebase.database.ChildEvent.Type
15
15
import dev.gitlive.firebase.decode
16
+ import dev.gitlive.firebase.offerOrNull
16
17
import kotlinx.coroutines.FlowPreview
17
18
import kotlinx.coroutines.channels.awaitClose
18
19
import kotlinx.coroutines.coroutineScope
@@ -91,8 +92,7 @@ actual open class Query internal constructor(
91
92
get() = callbackFlow {
92
93
val listener = object : ValueEventListener {
93
94
override fun onDataChange (snapshot : com.google.firebase.database.DataSnapshot ) {
94
- if (! isClosedForSend)
95
- offer(DataSnapshot (snapshot))
95
+ offerOrNull(DataSnapshot (snapshot))
96
96
}
97
97
98
98
override fun onCancelled (error : com.google.firebase.database.DatabaseError ) {
@@ -108,22 +108,22 @@ actual open class Query internal constructor(
108
108
109
109
val moved by lazy { types.contains(Type .MOVED ) }
110
110
override fun onChildMoved (snapshot : com.google.firebase.database.DataSnapshot , previousChildName : String? ) {
111
- if (moved && ! isClosedForSend) offer (ChildEvent (DataSnapshot (snapshot), Type .MOVED , previousChildName))
111
+ if (moved) offerOrNull (ChildEvent (DataSnapshot (snapshot), Type .MOVED , previousChildName))
112
112
}
113
113
114
114
val changed by lazy { types.contains(Type .CHANGED ) }
115
115
override fun onChildChanged (snapshot : com.google.firebase.database.DataSnapshot , previousChildName : String? ) {
116
- if (changed && ! isClosedForSend) offer (ChildEvent (DataSnapshot (snapshot), Type .CHANGED , previousChildName))
116
+ if (changed) offerOrNull (ChildEvent (DataSnapshot (snapshot), Type .CHANGED , previousChildName))
117
117
}
118
118
119
119
val added by lazy { types.contains(Type .ADDED ) }
120
120
override fun onChildAdded (snapshot : com.google.firebase.database.DataSnapshot , previousChildName : String? ) {
121
- if (added && ! isClosedForSend) offer (ChildEvent (DataSnapshot (snapshot), Type .ADDED , previousChildName))
121
+ if (added) offerOrNull (ChildEvent (DataSnapshot (snapshot), Type .ADDED , previousChildName))
122
122
}
123
123
124
124
val removed by lazy { types.contains(Type .REMOVED ) }
125
125
override fun onChildRemoved (snapshot : com.google.firebase.database.DataSnapshot ) {
126
- if (removed && ! isClosedForSend) offer (ChildEvent (DataSnapshot (snapshot), Type .REMOVED , null ))
126
+ if (removed) offerOrNull (ChildEvent (DataSnapshot (snapshot), Type .REMOVED , null ))
127
127
}
128
128
129
129
override fun onCancelled (error : com.google.firebase.database.DatabaseError ) {
0 commit comments