@@ -156,10 +156,11 @@ class FeedState extends AppState {
156
156
isBusy = true ;
157
157
_feedlist = null ;
158
158
notifyListeners ();
159
- kDatabase.child ('tweet' ).once ().then ((DataSnapshot snapshot) {
159
+ kDatabase.child ('tweet' ).once ().then ((DatabaseEvent event) {
160
+ final snapshot = event.snapshot;
160
161
_feedlist = < FeedModel > [];
161
162
if (snapshot.value != null ) {
162
- var map = snapshot.value;
163
+ var map = snapshot.value as Map < dynamic , dynamic > ? ;
163
164
if (map != null ) {
164
165
map.forEach ((key, value) {
165
166
var model = FeedModel .fromJson (value);
@@ -206,9 +207,10 @@ class FeedState extends AppState {
206
207
.child ('tweet' )
207
208
.child (postID! )
208
209
.once ()
209
- .then ((DataSnapshot snapshot) {
210
+ .then ((DatabaseEvent event) {
211
+ final snapshot = event.snapshot;
210
212
if (snapshot.value != null ) {
211
- var map = snapshot.value;
213
+ var map = snapshot.value as Map < dynamic , dynamic > ;
212
214
_tweetDetail = FeedModel .fromJson (map);
213
215
_tweetDetail! .key = snapshot.key! ;
214
216
setFeedModel = _tweetDetail! ;
@@ -230,9 +232,10 @@ class FeedState extends AppState {
230
232
.child ('tweet' )
231
233
.child (x)
232
234
.once ()
233
- .then ((DataSnapshot snapshot) {
235
+ .then ((DatabaseEvent event) {
236
+ final snapshot = event.snapshot;
234
237
if (snapshot.value != null ) {
235
- var commentmodel = FeedModel .fromJson (snapshot.value);
238
+ var commentmodel = FeedModel .fromJson (snapshot.value as Map );
236
239
String key = snapshot.key! ;
237
240
commentmodel.key = key;
238
241
@@ -276,9 +279,10 @@ class FeedState extends AppState {
276
279
else {
277
280
cprint ("Fetched from DB: " + postID);
278
281
var model = await kDatabase.child ('tweet' ).child (postID).once ().then (
279
- (DataSnapshot snapshot) {
282
+ (DatabaseEvent event) {
283
+ final snapshot = event.snapshot;
280
284
if (snapshot.value != null ) {
281
- var map = snapshot.value;
285
+ var map = snapshot.value as Map < dynamic , dynamic > ;
282
286
_tweetDetail = FeedModel .fromJson (map);
283
287
_tweetDetail.key = snapshot.key! ;
284
288
print (_tweetDetail.description);
@@ -296,11 +300,11 @@ class FeedState extends AppState {
296
300
297
301
/// create [New Tweet]
298
302
/// returns Tweet key
299
- Future <String > createTweet (FeedModel model) async {
303
+ Future <String ? > createTweet (FeedModel model) async {
300
304
/// Create tweet in [Firebase kDatabase]
301
305
isBusy = true ;
302
306
notifyListeners ();
303
- late String tweetKey;
307
+ String ? tweetKey;
304
308
try {
305
309
DatabaseReference dbReference = kDatabase.child ('tweet' ).push ();
306
310
@@ -317,8 +321,8 @@ class FeedState extends AppState {
317
321
318
322
/// It will create tweet in [Firebase kDatabase] just like other normal tweet.
319
323
/// update retweet count for retweet model
320
- Future <String > createReTweet (FeedModel model) async {
321
- late String tweetKey;
324
+ Future <String ? > createReTweet (FeedModel model) async {
325
+ String ? tweetKey;
322
326
try {
323
327
tweetKey = await createTweet (model);
324
328
if (_tweetToReplyModel != null ) {
@@ -477,14 +481,16 @@ class FeedState extends AppState {
477
481
var userId = await pref.getUserProfile ().then ((value) => value! .userId);
478
482
DatabaseReference dbReference =
479
483
kDatabase.child ('bookmark' ).child (userId! ).child (tweetId);
480
- await dbReference.set ({"tweetId" : tweetId});
484
+ await dbReference.set (
485
+ {"tweetId" : tweetId, "created_at" : DateTime .now ().toUtc ().toString ()});
481
486
}
482
487
483
488
/// Trigger when any tweet changes or update
484
489
/// When any tweet changes it update it in UI
485
490
/// No matter if Tweet is in home page or in detail page or in comment section.
486
- _onTweetChanged (Event event) {
487
- var model = FeedModel .fromJson (event.snapshot.value);
491
+ _onTweetChanged (DatabaseEvent event) {
492
+ var model =
493
+ FeedModel .fromJson (event.snapshot.value as Map <dynamic , dynamic >);
488
494
model.key = event.snapshot.key! ;
489
495
if (_feedlist! .any ((x) => x.key == model.key)) {
490
496
var oldEntry = _feedlist! .lastWhere ((entry) {
@@ -526,8 +532,8 @@ class FeedState extends AppState {
526
532
/// Trigger when new tweet added
527
533
/// It will add new Tweet in home page list.
528
534
/// IF Tweet is comment it will be added in comment section too.
529
- _onTweetAdded (Event event) {
530
- FeedModel tweet = FeedModel .fromJson (event.snapshot.value);
535
+ _onTweetAdded (DatabaseEvent event) {
536
+ FeedModel tweet = FeedModel .fromJson (event.snapshot.value as Map );
531
537
tweet.key = event.snapshot.key! ;
532
538
533
539
/// Check if Tweet is a comment
@@ -567,8 +573,8 @@ class FeedState extends AppState {
567
573
568
574
/// Trigger when Tweet `Deleted`
569
575
/// It removed Tweet from home page list, Tweet detail page list and from comment section if present
570
- _onTweetRemoved (Event event) async {
571
- FeedModel tweet = FeedModel .fromJson (event.snapshot.value);
576
+ _onTweetRemoved (DatabaseEvent event) async {
577
+ FeedModel tweet = FeedModel .fromJson (event.snapshot.value as Map );
572
578
tweet.key = event.snapshot.key! ;
573
579
var tweetId = tweet.key;
574
580
var parentkey = tweet.parentkey;
0 commit comments