1
- import 'dart:async' ;
2
1
import 'dart:convert' ;
3
-
4
- import 'package:firebase_analytics/firebase_analytics.dart' ;
2
+ import 'package:firebase_remote_config/firebase_remote_config.dart' ;
5
3
import 'package:flutter_twitter_clone/helper/enum.dart' ;
6
4
import 'package:http/http.dart' as http;
7
5
import 'package:firebase_database/firebase_database.dart' ;
@@ -18,6 +16,9 @@ class ChatState extends AppState {
18
16
List <ChatMessage > _messageList;
19
17
List <User > _chatUserList;
20
18
User _chatUser;
19
+ String serverToken = "<FCM SERVER KEY>" ;
20
+
21
+ /// Get FCM server key from firebase project settings
21
22
User get chatUser => _chatUser;
22
23
set setChatUser (User model) {
23
24
_chatUser = model;
@@ -47,7 +48,7 @@ class ChatState extends AppState {
47
48
}
48
49
}
49
50
50
- void databaseInit (String userId, String myId) {
51
+ void databaseInit (String userId, String myId) async {
51
52
_messageList = null ;
52
53
if (_channelName == null ) {
53
54
getChannelName (userId, myId);
@@ -65,6 +66,28 @@ class ChatState extends AppState {
65
66
}
66
67
}
67
68
69
+ /// FCM server key is stored in firebase remote config
70
+ /// you have to save server key in firebase remote config
71
+ /// To fetch this key go to project setting in firebase
72
+ /// Click on `cloud messaging` tab
73
+ /// Copy server key from `Project credentials`
74
+ /// Now goto `Remote Congig` section in fireabse
75
+ /// Add [FcmServerKey] as paramerter key and below json in Default vslue
76
+ /// ``` json
77
+ /// {
78
+ /// "key": "FCM server key here"
79
+ /// } ```
80
+ /// For more detail visit:- https://pub.dev/packages/firebase_remote_config#-readme-tab-
81
+ void getFCMServerKey () async {
82
+ final RemoteConfig remoteConfig = await RemoteConfig .instance;
83
+ await remoteConfig.fetch (expiration: const Duration (hours: 5 ));
84
+ await remoteConfig.activateFetched ();
85
+ var data = remoteConfig.getString ('FcmServerKey' );
86
+ if (data != null ) {
87
+ serverToken = jsonDecode (data)["key" ];
88
+ }
89
+ }
90
+
68
91
void getUserchatList (String userId) {
69
92
try {
70
93
final databaseReference = FirebaseDatabase .instance.reference ();
@@ -93,7 +116,7 @@ class ChatState extends AppState {
93
116
}
94
117
}
95
118
96
- void getchatDetailAsync () {
119
+ void getchatDetailAsync () async {
97
120
try {
98
121
final databaseReference = FirebaseDatabase .instance.reference ();
99
122
databaseReference
@@ -242,8 +265,7 @@ class ChatState extends AppState {
242
265
if (chatUser.fcmToken == null ) {
243
266
return ;
244
267
}
245
- final String serverToken = "ADD FIREBASE SERVER KEY HERE" ;
246
-
268
+
247
269
var body = jsonEncode (< String , dynamic > {
248
270
'notification' : < String , dynamic > {
249
271
'body' : model.message,
0 commit comments