added firebase for notification

This commit is contained in:
llsajjad
2025-09-20 13:02:02 +03:30
parent 33016e1ef2
commit fff8d42759
9 changed files with 161 additions and 2 deletions
+5
View File
@@ -3,6 +3,7 @@ plugins {
id("kotlin-android")
// The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
id("dev.flutter.flutter-gradle-plugin")
id("com.google.gms.google-services")
}
android {
@@ -42,3 +43,7 @@ android {
flutter {
source = "../.."
}
dependencies {
implementation(platform("com.google.firebase:firebase-bom:32.7.2"))
}
+29
View File
@@ -0,0 +1,29 @@
{
"project_info": {
"project_number": "1071558853812",
"project_id": "opplens",
"storage_bucket": "opplens.firebasestorage.app"
},
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:1071558853812:android:7831119a56a99c5948c3e1",
"android_client_info": {
"package_name": "com.opplens.app"
}
},
"oauth_client": [],
"api_key": [
{
"current_key": "AIzaSyD5LaGXppjGEdTf-a0Ha25FX1p0v_h-c8A"
}
],
"services": {
"appinvite_service": {
"other_platform_oauth_client": []
}
}
}
],
"configuration_version": "1"
}
+11
View File
@@ -1,3 +1,13 @@
buildscript {
repositories {
google()
mavenCentral()
}
dependencies {
classpath("com.google.gms:google-services:4.4.1")
}
}
allprojects {
repositories {
google()
@@ -12,6 +22,7 @@ subprojects {
val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name)
project.layout.buildDirectory.value(newSubprojectBuildDir)
}
subprojects {
project.evaluationDependsOn(":app")
}
+14
View File
@@ -0,0 +1,14 @@
import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:logger/logger.dart';
class MessagingService {
//create an instance of firebase messaging
final _firebaseMessaging = FirebaseMessaging.instance;
Future<void> initNotifications() async {
await _firebaseMessaging.requestPermission();
final fcmToken = await _firebaseMessaging.getToken();
Logger().i('FCMToken: $fcmToken');
}
}
+25
View File
@@ -1,15 +1,19 @@
// main.dart
import 'dart:ui';
import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:logger/logger.dart';
import 'package:provider/provider.dart';
import 'package:provider/single_child_widget.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:tm_app/core/config/dependencies.dart';
import 'package:tm_app/core/config/web_url_strategy.dart';
import 'package:tm_app/core/services/cache_init.dart';
import 'package:tm_app/core/services/messaging_service.dart';
import 'package:tm_app/core/theme/theme_provider.dart';
import 'core/routes/app_routes.dart';
@@ -39,6 +43,27 @@ void main() async {
// Configure web URL strategy if running on web
configureWebUrlStrategy();
if (kIsWeb) {
await Firebase.initializeApp(
options: const FirebaseOptions(
apiKey: 'AIzaSyAUQhM789-0qZIaIWtwTQXyz9gEtN-TnnU',
authDomain: 'opplens.firebaseapp.com',
appId: '1:1071558853812:web:d9ca896b088ee7da48c3e1',
messagingSenderId: '1071558853812',
projectId: 'opplens',
storageBucket: 'opplens.firebasestorage.app',
measurementId: 'G-GJGP9WB28B',
),
);
final _firebaseMessaging = FirebaseMessaging.instance;
await _firebaseMessaging.requestPermission();
final fcmToken = await _firebaseMessaging.getToken();
Logger().i('FCMToken: $fcmToken');
} else {
await Firebase.initializeApp();
await MessagingService().initNotifications();
}
runApp(MultiProvider(providers: providers, child: const MyApp()));
}
+58 -2
View File
@@ -9,6 +9,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "85.0.0"
_flutterfire_internals:
dependency: transitive
description:
name: _flutterfire_internals
sha256: "948f7d74f41dd6f2d563ea9f4c21d7ea764f8e047d2b24138974c19c24d37eb6"
url: "https://pub.dev"
source: hosted
version: "1.3.61"
analyzer:
dependency: transitive
description:
@@ -289,6 +297,54 @@ packages:
url: "https://pub.dev"
source: hosted
version: "10.3.3"
firebase_core:
dependency: "direct main"
description:
name: firebase_core
sha256: "967dae9a65f69377beb9f4ab292ea63ce5befa1ce24682cab1b69ca4b7a46927"
url: "https://pub.dev"
source: hosted
version: "4.1.0"
firebase_core_platform_interface:
dependency: transitive
description:
name: firebase_core_platform_interface
sha256: "5dbc900677dcbe5873d22ad7fbd64b047750124f1f9b7ebe2a33b9ddccc838eb"
url: "https://pub.dev"
source: hosted
version: "6.0.0"
firebase_core_web:
dependency: transitive
description:
name: firebase_core_web
sha256: f7ee08febc1c4451588ce58ffcf28edaee857e9a196fee88b85deb889990094a
url: "https://pub.dev"
source: hosted
version: "3.1.0"
firebase_messaging:
dependency: "direct main"
description:
name: firebase_messaging
sha256: aad5dcdea5698499b70d74d5a53b1f6a9972f85f97225e4b7ac006dd8d4f9bac
url: "https://pub.dev"
source: hosted
version: "16.0.1"
firebase_messaging_platform_interface:
dependency: transitive
description:
name: firebase_messaging_platform_interface
sha256: "825bc11767bf50a43dccf49b3026f847ec31d0f176139bfc48d662cc128b5014"
url: "https://pub.dev"
source: hosted
version: "4.7.1"
firebase_messaging_web:
dependency: transitive
description:
name: firebase_messaging_web
sha256: db8dbdd79921245c4de02407e33cae2d1868683be18a5ba948d2af5311e3ef5d
url: "https://pub.dev"
source: hosted
version: "4.0.1"
fixnum:
dependency: transitive
description:
@@ -492,10 +548,10 @@ packages:
dependency: transitive
description:
name: js
sha256: "53385261521cc4a0c4658fd0ad07a7d14591cf8fc33abbceae306ddb974888dc"
sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3
url: "https://pub.dev"
source: hosted
version: "0.7.2"
version: "0.6.7"
json_annotation:
dependency: "direct main"
description:
+2
View File
@@ -31,6 +31,8 @@ dependencies:
path_provider: ^2.1.5
dotted_border: ^3.1.0
file_picker: ^10.3.3
firebase_core: ^4.1.0
firebase_messaging: ^16.0.1
dev_dependencies:
+14
View File
@@ -0,0 +1,14 @@
importScripts("https://www.gstatic.com/firebasejs/9.22.2/firebase-app-compat.js");
importScripts("https://www.gstatic.com/firebasejs/9.22.2/firebase-messaging-compat.js");
firebase.initializeApp({
apiKey: 'AIzaSyAUQhM789-0qZIaIWtwTQXyz9gEtN-TnnU',
authDomain: 'opplens.firebaseapp.com',
appId: '1:1071558853812:web:d9ca896b088ee7da48c3e1',
messagingSenderId: '1071558853812',
projectId: 'opplens',
storageBucket: 'opplens.firebasestorage.app',
measurementId: 'G-GJGP9WB28B',
});
const messaging = firebase.messaging();
+3
View File
@@ -2,6 +2,9 @@
<html>
<head>
<script src="https://www.gstatic.com/firebasejs/9.22.2/firebase-app-compat.js"></script>
<script src="https://www.gstatic.com/firebasejs/9.22.2/firebase-messaging-compat.js"></script>
<!--
If you are serving your web app in a path other than the root, change the
href value below to reflect the base path you are serving from.