registering fcm token for users

This commit is contained in:
MohammadTaha Basiri 2022-03-30 21:25:19 +04:30
parent 67c583bc7e
commit d83625521b
3 changed files with 15 additions and 1 deletions

View File

@ -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<void> _registerFirebaseToken() async {
final service = RequestService(RequestHelper.firebaseToken, body: {
'firebaseToken': AppInitializer.fcmToken,
});
await service.put();
}
Future<bool> setProfilePhoto(dynamic file) async {
appState = AppState.isolatedBusy;
final RequestService service =

View File

@ -8,6 +8,8 @@ import 'package:flutter/material.dart';
import 'package:path_provider/path_provider.dart';
class AppInitializer {
static String? fcmToken;
static Future<void> 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,

View File

@ -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';