Merge pull request 'added firebase for notification' (#146) from firebase into main

Reviewed-on: https://repo.ravanertebat.com/TM/tm_app/pulls/146
This commit is contained in:
a.ghabeli
2025-09-20 13:04:13 +03:30
9 changed files with 161 additions and 2 deletions
+5
View File
@@ -3,6 +3,7 @@ plugins {
id("kotlin-android") id("kotlin-android")
// The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
id("dev.flutter.flutter-gradle-plugin") id("dev.flutter.flutter-gradle-plugin")
id("com.google.gms.google-services")
} }
android { android {
@@ -42,3 +43,7 @@ android {
flutter { flutter {
source = "../.." 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 { allprojects {
repositories { repositories {
google() google()
@@ -12,6 +22,7 @@ subprojects {
val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name)
project.layout.buildDirectory.value(newSubprojectBuildDir) project.layout.buildDirectory.value(newSubprojectBuildDir)
} }
subprojects { subprojects {
project.evaluationDependsOn(":app") 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 // main.dart
import 'dart:ui'; 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/foundation.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:logger/logger.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:provider/single_child_widget.dart'; import 'package:provider/single_child_widget.dart';
import 'package:shared_preferences/shared_preferences.dart'; import 'package:shared_preferences/shared_preferences.dart';
import 'package:tm_app/core/config/dependencies.dart'; import 'package:tm_app/core/config/dependencies.dart';
import 'package:tm_app/core/config/web_url_strategy.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/cache_init.dart';
import 'package:tm_app/core/services/messaging_service.dart';
import 'package:tm_app/core/theme/theme_provider.dart'; import 'package:tm_app/core/theme/theme_provider.dart';
import 'core/routes/app_routes.dart'; import 'core/routes/app_routes.dart';
@@ -39,6 +43,27 @@ void main() async {
// Configure web URL strategy if running on web // Configure web URL strategy if running on web
configureWebUrlStrategy(); 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())); runApp(MultiProvider(providers: providers, child: const MyApp()));
} }
+58 -2
View File
@@ -9,6 +9,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "85.0.0" 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: analyzer:
dependency: transitive dependency: transitive
description: description:
@@ -289,6 +297,54 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "10.3.3" 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: fixnum:
dependency: transitive dependency: transitive
description: description:
@@ -492,10 +548,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: js name: js
sha256: "53385261521cc4a0c4658fd0ad07a7d14591cf8fc33abbceae306ddb974888dc" sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.7.2" version: "0.6.7"
json_annotation: json_annotation:
dependency: "direct main" dependency: "direct main"
description: description:
+2
View File
@@ -31,6 +31,8 @@ dependencies:
path_provider: ^2.1.5 path_provider: ^2.1.5
dotted_border: ^3.1.0 dotted_border: ^3.1.0
file_picker: ^10.3.3 file_picker: ^10.3.3
firebase_core: ^4.1.0
firebase_messaging: ^16.0.1
dev_dependencies: 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> <html>
<head> <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 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. href value below to reflect the base path you are serving from.