اذهب إلى المحتوى
  • 0

مشكلة في ربط تطبيق Flutter مع Firebase

امل_هاني

السؤال

احاول ربط التطبيق الخاص بي بالفايربيس قمت بتنزيل كل الاساسيات قمت بتنزيل google-services.json  وبعدها قمت باضاف جميع package 

apply plugin: 'com.google.gms.google-services'

implementation platform('com.google.firebase:firebase-bom:32.0.0')

classpath 'com.google.gms:google-services:4.3.15'

في ملف main.dart  قمت بكتابه الكود التالي :

import 'package:flutter/material.dart';

import 'package:firebase_core/firebase_core.dart';



import 'login_screen.dart';



void main() async {

WidgetsFlutterBinding.ensureInitialized();

await Firebase.initializeApp();



runApp(const MyApp());

}



class MyApp extends StatelessWidget {

const MyApp({super.key});



// This widget is the root of your application.

@override

Widget build(BuildContext context) {

return MaterialApp(

title: 'Flutter Demo',

home: LoginScreen()

);

}

}

اي ان loginscreen.dart هي ملف اخر في تكتست انبوت وبتن 

عن تشغيل flutter run 

يظهر لي ايرور لا اعرف ماذا يقصد به ولم استطيع ان احل مشكله واريد مساعده 

هذا هو الايرور 

Error: Assertion failed: file:///C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dev/firebase_core_web-2.5.0/lib/src/firebase_core_web.dart:256:11
options != null
"FirebaseOptions cannot be null when creating the default app."
dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 288:49  throw_
dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 29:3    assertFailed
packages/firebase_core_web/src/firebase_core_web.dart 256:18                  initializeApp
dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 45:50            <fn>
dart-sdk/lib/async/zone.dart 1661:54                                          runUnary
dart-sdk/lib/async/future_impl.dart 147:18                                    handleValue
dart-sdk/lib/async/future_impl.dart 784:44                                    handleValueCallback
dart-sdk/lib/async/future_impl.dart 813:13                                    _propagateToListeners
dart-sdk/lib/async/future_impl.dart 584:5                                     [_completeWithValue]
dart-sdk/lib/async/future.dart 531:22                                         <fn>
dart-sdk/lib/async/zone.dart 1661:54                                          runUnary
dart-sdk/lib/async/future_impl.dart 147:18                                    handleValue
dart-sdk/lib/async/future_impl.dart 784:44                                    handleValueCallback
dart-sdk/lib/async/future_impl.dart 813:13                                    _propagateToListeners
dart-sdk/lib/async/future_impl.dart 584:5                                     [_completeWithValue]
dart-sdk/lib/async/future_impl.dart 657:7                                     callback
dart-sdk/lib/async/schedule_microtask.dart 40:11                              _microtaskLoop
dart-sdk/lib/async/schedule_microtask.dart 49:5                               _startMicrotaskLoop
dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 177:15           <fn>


 

مع العلم ان الايرور هذا لا يحد الا عندما اضيف في ملف main.dart هذا السطر البرمجي 

WidgetsFlutterBinding.ensureInitialized();

await Firebase.initializeApp();

اقوم بحل هذا المشكله ؟

تم التعديل في بواسطة Mustafa Suleiman
تعديل عنوان السؤال وتنسيق النص
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

رسالة الخطأ تعني  أن FirebaseOptions لا يمكن أن تكون قيمة null عند إنشاء التطبيق الافتراضي.

حاول إتباع التالي لحل المشكلة:

1- تأكد من أنك قمت بإضافة ملف google-services.json الخاص بـ Firebase إلى مجلد الجذر في مشروع Flutter الخاص بك.

2- تأكد من أنك قمت بإضافة جميع حزم Firebase اللازمة إلى ملف pubspec.yaml في مشروعك، وتستطيع التأكد من وجود الحزم اللازمة وإصداراتها الصحيحة في ملف pubspec.yaml، ثم قم بتشغيل الأمر flutter pub get لتثبيتها.

3- تأكد من أن تكوين Firebase الخاص بك صحيح في مشروع Flutter، من خلال فتح ملف android/app/build.gradle وتأكد من وجود التكوينات التالية:

apply plugin: 'com.google.gms.google-services'

dependencies {
    implementation platform('com.google.firebase:firebase-bom:32.0.0')
    // ...
}

4- تحقق من أنه تم تثبيت مكون Google Services الصحيح في مشروعك فيجب وجود السطر التالي في ملف android/build.gradle:

classpath 'com.google.gms:google-services:4.3.15'

5- تأكد من استدعاء دالة main() باستخدام الكلمة المفتاحية async واستخدام await قبل دالة Firebase.initializeApp() لضمان تهيئة Firebase بنجاح قبل تشغيل التطبيق.

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 23 ساعة قال Mustafa Suleiman:

رسالة الخطأ تعني  أن FirebaseOptions لا يمكن أن تكون قيمة null عند إنشاء التطبيق الافتراضي.

حاول إتباع التالي لحل المشكلة:

1- تأكد من أنك قمت بإضافة ملف google-services.json الخاص بـ Firebase إلى مجلد الجذر في مشروع Flutter الخاص بك.

2- تأكد من أنك قمت بإضافة جميع حزم Firebase اللازمة إلى ملف pubspec.yaml في مشروعك، وتستطيع التأكد من وجود الحزم اللازمة وإصداراتها الصحيحة في ملف pubspec.yaml، ثم قم بتشغيل الأمر flutter pub get لتثبيتها.

3- تأكد من أن تكوين Firebase الخاص بك صحيح في مشروع Flutter، من خلال فتح ملف android/app/build.gradle وتأكد من وجود التكوينات التالية:

apply plugin: 'com.google.gms.google-services'

dependencies {
    implementation platform('com.google.firebase:firebase-bom:32.0.0')
    // ...
}

4- تحقق من أنه تم تثبيت مكون Google Services الصحيح في مشروعك فيجب وجود السطر التالي في ملف android/build.gradle:

classpath 'com.google.gms:google-services:4.3.15'

5- تأكد من استدعاء دالة main() باستخدام الكلمة المفتاحية async واستخدام await قبل دالة Firebase.initializeApp() لضمان تهيئة Firebase بنجاح قبل تشغيل التطبيق.

 

لقد تأكد من كل هذا الحزم وكلها متواجده ولكن الخطأ مازال  

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

الخطأ الذي تواجهه يشير إلى أن FirebaseOptions لا يمكن أن يكون قيمتها null عند إنشاء التطبيق الافتراضي (default app) في Firebase. هذا يحدث عند استدعاء Firebase.initializeApp().

لحل هذه المشكلة، يمكنك التحقق من عدة نقاط:

  • تأكد من أنك قمت بتكوين مشروع Firebase الخاص بك بشكل صحيح وحصلت على ملف google-services.json الصحيح. تحتاج إلى التأكد من أنه تم تضمينه في مسار android/app من مشروعك في Flutter.
  • تأكد من أن حزمة Firebase Core المرتبطة بمشروعك مضافة بشكل صحيح في ملف pubspec.yaml. يجب أن يتم ذلك عن طريق إضافة firebase_core إلى قسم dependencies في ملف pubspec.yaml الخاص بتطبيقك وتشغيل أمر flutter pub get لتثبيتها.
  • تحقق من الإصدارات المستخدمة لحزم Firebase في ملف pubspec.yaml وتأكد من توافقها. تحقق من الإصدارات التي تستخدمها في حزم Firebase مثل firebase_core وfirebase_auth وما إلى ذلك للتأكد من توافقها وعدم وجود تضارب في الإصدارات.
  • تأكد من أن تكوين Firebase تم إجراؤه بشكل صحيح في ملف main.dart. تحتاج إلى استدعاء await Firebase.initializeApp() في الدالة main() قبل استدعاء runApp().

باستكمال هذه الخطوات والتحقق من الإعدادات والتكوين الصحيح لمشروعك وحزم Firebase، يجب أن تتمكن من حل مشكلة الخطأ وتشغيل التطبيق بنجاح مع Firebase.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 23 ساعة قال كارلا لاركس:

لقد تأكد من كل هذا الحزم وكلها متواجده ولكن الخطأ مازال  

بدلاً من ذلك ، يمكنك اتباع التوثيق الرسمي المحدث واستخدام سطر الأوامر Firebase CLI لإنشاء ملف firebase_options.dart تلقائيًا في مجلد lib الخاص بك ، والذي سيحدد خيارات Firebase الصحيحة لك. الخطوات هي:

تثبيت Flutterfire CLI: 

dart pub global activate flutterfire_cli

تكوين Flutterfire (قم بتشغيله في أصل مشروعك وامر بالارشاد من خلال اختيار مشروع Firebase الصحيح ومنصات الهدف):

flutterfire configure  

استيراد ملف firebase_options.dart المولد تلقائيًا في ملف main.dart الخاص بك وتهيئة Firebase على النحو التالي:

void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp(  
options: DefaultFirebaseOptions.currentPlatform,  
);
runApp(MyApp()); 
}

وبهذه الطريقة ، لا تحتاج إلى تعريف options يدويًا. وسيقوم Flutterfire CLI بتوليد ملف Dart لدعم منصتك (Android و iOS وتجريبي Web) وسيعرّف خيارات Firebase المناسبة تلقائيًا.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...