From d83625521b022c78792b344cd47cf540550dac26 Mon Sep 17 00:00:00 2001 From: MohammadTaha Basiri Date: Wed, 30 Mar 2022 21:25:19 +0430 Subject: [PATCH] registering fcm token for users --- lib/providers/user_provider.dart | 9 +++++++++ lib/services/app_initalizer.dart | 5 ++++- lib/services/network/request_helper.dart | 2 ++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/lib/providers/user_provider.dart b/lib/providers/user_provider.dart index ad4a4fb..ab694ac 100644 --- a/lib/providers/user_provider.dart +++ b/lib/providers/user_provider.dart @@ -3,6 +3,7 @@ import 'package:didvan/models/enums.dart'; import 'package:didvan/models/user.dart'; import 'package:didvan/models/view/alert_data.dart'; import 'package:didvan/providers/core_provider.dart'; +import 'package:didvan/services/app_initalizer.dart'; import 'package:didvan/services/network/request.dart'; import 'package:didvan/services/network/request_helper.dart'; import 'package:didvan/services/storage/storage.dart'; @@ -35,11 +36,19 @@ class UserProvider extends CoreProvier { } if (service.isSuccess) { user = User.fromJson(service.result['user']); + await _registerFirebaseToken(); return true; } throw 'Getting user from API failed!'; } + Future _registerFirebaseToken() async { + final service = RequestService(RequestHelper.firebaseToken, body: { + 'firebaseToken': AppInitializer.fcmToken, + }); + await service.put(); + } + Future setProfilePhoto(dynamic file) async { appState = AppState.isolatedBusy; final RequestService service = diff --git a/lib/services/app_initalizer.dart b/lib/services/app_initalizer.dart index 7483968..dfcc613 100644 --- a/lib/services/app_initalizer.dart +++ b/lib/services/app_initalizer.dart @@ -8,6 +8,8 @@ import 'package:flutter/material.dart'; import 'package:path_provider/path_provider.dart'; class AppInitializer { + static String? fcmToken; + static Future setupServices() async { if (!kIsWeb) { StorageService.appDocsDir = @@ -74,7 +76,8 @@ class AppInitializer { Firebase.app(); } final FirebaseMessaging fcm = FirebaseMessaging.instance; - fcm.subscribeToTopic('general'); + fcmToken = await fcm.getToken(); + await fcm.subscribeToTopic('general'); await fcm.requestPermission( alert: true, announcement: false, diff --git a/lib/services/network/request_helper.dart b/lib/services/network/request_helper.dart index ead496c..d355237 100644 --- a/lib/services/network/request_helper.dart +++ b/lib/services/network/request_helper.dart @@ -15,6 +15,8 @@ class RequestHelper { static const String login = _baseUserUrl + '/login'; static const String directs = _baseUserUrl + '/direct'; static const String userInfo = _baseUserUrl + '/info'; + static const String firebaseToken = _baseUserUrl + '/firebaseToken'; + static const String silenceInterval = _baseUserUrl + '/silenceInterval'; static const String updateProfilePhoto = _baseUserUrl + '/profile/photo'; static const String checkUsername = _baseUserUrl + '/CheckUsername'; static const String updateProfile = _baseUserUrl + '/profile/edit';