@@ -73,59 +73,61 @@ inline fun <reified T> MutableData.getValue(): T? {
73
73
* - When the returned flow starts being collected, a [ValueEventListener] will be attached.
74
74
* - When the flow completes, the listener will be removed.
75
75
*/
76
- fun Query.snapshots () = callbackFlow<DataSnapshot > {
77
- val listener = addValueEventListener(object : ValueEventListener {
78
- override fun onDataChange (snapshot : DataSnapshot ) {
79
- repo.scheduleNow {
80
- trySendBlocking(snapshot)
76
+ val Query .snapshots
77
+ get() = callbackFlow<DataSnapshot > {
78
+ val listener = addValueEventListener(object : ValueEventListener {
79
+ override fun onDataChange (snapshot : DataSnapshot ) {
80
+ repo.scheduleNow {
81
+ trySendBlocking(snapshot)
82
+ }
81
83
}
82
- }
83
84
84
- override fun onCancelled (error : DatabaseError ) {
85
- cancel(message = " Error getting Query snapshot" , cause = error.toException())
86
- }
87
- })
88
- awaitClose { removeEventListener(listener) }
89
- }
85
+ override fun onCancelled (error : DatabaseError ) {
86
+ cancel(message = " Error getting Query snapshot" , cause = error.toException())
87
+ }
88
+ })
89
+ awaitClose { removeEventListener(listener) }
90
+ }
90
91
91
92
/* *
92
93
* Starts listening to this query's child events and emits its values via a [Flow].
93
94
*
94
95
* - When the returned flow starts being collected, a [ChildEventListener] will be attached.
95
96
* - When the flow completes, the listener will be removed.
96
97
*/
97
- fun Query.childEvents () = callbackFlow<ChildEvent > {
98
- val listener = addChildEventListener(object : ChildEventListener {
99
- override fun onChildAdded (snapshot : DataSnapshot , previousChildName : String? ) {
100
- repo.scheduleNow {
101
- trySendBlocking(ChildEvent .Added (snapshot, previousChildName))
98
+ val Query .childEvents
99
+ get() = callbackFlow<ChildEvent > {
100
+ val listener = addChildEventListener(object : ChildEventListener {
101
+ override fun onChildAdded (snapshot : DataSnapshot , previousChildName : String? ) {
102
+ repo.scheduleNow {
103
+ trySendBlocking(ChildEvent .Added (snapshot, previousChildName))
104
+ }
102
105
}
103
- }
104
106
105
- override fun onChildChanged (snapshot : DataSnapshot , previousChildName : String? ) {
106
- repo.scheduleNow {
107
- trySendBlocking(ChildEvent .Changed (snapshot, previousChildName))
107
+ override fun onChildChanged (snapshot : DataSnapshot , previousChildName : String? ) {
108
+ repo.scheduleNow {
109
+ trySendBlocking(ChildEvent .Changed (snapshot, previousChildName))
110
+ }
108
111
}
109
- }
110
112
111
- override fun onChildRemoved (snapshot : DataSnapshot ) {
112
- repo.scheduleNow {
113
- trySendBlocking(ChildEvent .Removed (snapshot))
113
+ override fun onChildRemoved (snapshot : DataSnapshot ) {
114
+ repo.scheduleNow {
115
+ trySendBlocking(ChildEvent .Removed (snapshot))
116
+ }
114
117
}
115
- }
116
118
117
- override fun onChildMoved (snapshot : DataSnapshot , previousChildName : String? ) {
118
- repo.scheduleNow {
119
- trySendBlocking(ChildEvent .Moved (snapshot, previousChildName))
119
+ override fun onChildMoved (snapshot : DataSnapshot , previousChildName : String? ) {
120
+ repo.scheduleNow {
121
+ trySendBlocking(ChildEvent .Moved (snapshot, previousChildName))
122
+ }
120
123
}
121
- }
122
124
123
- override fun onCancelled (error : DatabaseError ) {
124
- cancel(message = " Error getting Query childEvent" , cause = error.toException())
125
- }
126
- })
127
- awaitClose { removeEventListener(listener) }
128
- }
125
+ override fun onCancelled (error : DatabaseError ) {
126
+ cancel(message = " Error getting Query childEvent" , cause = error.toException())
127
+ }
128
+ })
129
+ awaitClose { removeEventListener(listener) }
130
+ }
129
131
130
132
internal const val LIBRARY_NAME : String = " fire-db-ktx"
131
133
0 commit comments