شارك المقالة

شرح Google Sign In في Flutter مع Firebase بعد التحديثات الجديدة وإعداد SHA-1 و SHA-256

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

فهي توفر تجربة استخدام أسرع للمستخدم وتقلل خطوات التسجيل بشكل كبير.

وفي هذا المقال سنتعرف على كيفية تفعيل Google Sign In داخل Flutter مع Firebase Authentication بعد التحديثات الأخيرة، بالإضافة إلى أهمية إعداد مفاتيح SHA-1 و SHA-256.

لماذا نستخدم Google Sign In داخل Flutter؟

يوفر تسجيل الدخول عبر Google عدة مميزات مهمة:

  • تسجيل دخول سريع بدون إنشاء حساب جديد.
  • تحسين معدل الاحتفاظ بالمستخدمين.
  • تقليل مشاكل نسيان كلمات المرور.
  • تكامل مباشر مع Firebase Authentication.
  • سهولة ربط الحسابات عبر المنصات المختلفة.

ولهذا السبب تعتمد عليه أغلب التطبيقات الحديثة.

إعداد Firebase قبل كتابة الكود

قبل البدء يجب تجهيز مشروع Firebase بالكامل.

1- إضافة التطبيق داخل Firebase Console

افتح Firebase Console ثم:

  • أنشئ مشروعًا جديدًا أو استخدم مشروعًا موجودًا.
  • أضف تطبيق Android.
  • استخدم Package Name الموجود داخل:

android/app/build.gradle

بعدها أضف تطبيق iOS باستخدام:


ios/Runner/Info.plist

وقم بإضافة:


Bundle Identifier

2- تحميل ملفات Firebase

بعد إنشاء التطبيقات قم بتحميل ملفات التهيئة.

ملف Android:


google-services.json

ضعه داخل:


android/app/

أما ملف iOS:


GoogleService-Info.plist

يوضع داخل:


ios/Runner/

إضافة SHA-1 و SHA-256 داخل Firebase

هذه الخطوة تعتبر من أكثر الأسباب شيوعًا لفشل Google Sign In على Android.

أولًا نحصل على مفاتيح التطوير.

لتطبيق Debug شغل الأمر:


keytool -list -v \

-keystore ~/.android/debug.keystore

-alias androiddebugkey

-storepass android

-keypass android

أما للإصدار النهائي Release:


keytool -list -v \

-keystore
android/app/upload-keystore.jks

-alias upload

-storepass dev111

-keypass dev111

بعد التنفيذ ستظهر:

  • SHA-1
  • SHA-256

قم بنسخ القيم وإضافتها داخل:


Firebase Console

Project Settings

Android App

لماذا تعتبر SHA-1 و SHA-256 مهمة؟

بدون هذه المفاتيح لن يعمل Google Sign In على Android.

لكل مفتاح وظيفة مختلفة:

SHA-1

  • مطلوب لـ Firebase Authentication.
  • ضروري لربط خدمات Google.

SHA-256

  • دعم Google Play Integrity API.
  • التوافق مع App Signing.
  • دعم الأنظمة الأمنية الحديثة.

أما على iOS فلا تحتاج SHA Keys.

يكفي إعداد:


REVERSED_CLIENT_ID

من الملف:


GoogleService-Info.plist

كود تسجيل الدخول عبر Google بعد التحديثات الجديدة

بعد إعداد Firebase يمكن كتابة كود تسجيل الدخول.

الصيغة الجديدة أصبحت كالتالي:


Future<void>

login(

 BuildContext context,

 MainBloc cubit

) async {

 final GoogleSignIn
 googleSignIn =

 GoogleSignIn.instance;

 await googleSignIn
      .initialize();

 await googleSignIn
      .signOut();

 final GoogleSignInAccount
 googleUser =

 await googleSignIn
      .authenticate(

        scopeHint: ['email']

      );

 final
 GoogleSignInAuthentication
 googleAuth =

 await googleUser
      .authentication;

 final OAuthCredential
 credential =

 GoogleAuthProvider
 .credential(

   idToken:
   googleAuth.idToken

 );

 await FirebaseAuth
 .instance

 .signInWithCredential(
      credential
 )

 .then(

 (value) async {

   FirebaseFirestore
   .instance

   .collection(
      'users'
   )

   .doc(
      value.user!.uid
   )

   .get()

   .then(

    (user) async {

      // معالجة البيانات

    }

   );

 }

 );

}

كيف يعمل الكود داخليًا؟

يمر تسجيل الدخول بعدة مراحل:

  • تهيئة Google Sign In.
  • بدء المصادقة.
  • الحصول على بيانات المستخدم.
  • إنشاء Firebase Credential.
  • إرسال Credential إلى Firebase Authentication.
  • الوصول إلى بيانات المستخدم داخل Firestore.

بعد نجاح العملية يمكن:

  • حفظ المستخدم.
  • تخزين البيانات.
  • نقل المستخدم للشاشة الرئيسية.

مشاكل شائعة أثناء Google Sign In

فشل تسجيل الدخول على Android

غالبًا السبب:

  • عدم إضافة SHA-1.
  • نسيان SHA-256.
  • استخدام Keystore مختلف.

العمل على Debug فقط دون Release

يجب إضافة مفاتيح:

  • Debug
  • Release

داخل Firebase.

نسيان تحديث google-services.json

بعد تعديل SHA يجب إعادة تحميل الملف من Firebase.

الخلاصة

يعتبر Google Sign In واحدًا من أهم أنظمة المصادقة داخل تطبيقات Flutter.

ومع Firebase Authentication تصبح عملية الربط مباشرة وسهلة.

لكن نجاح الإعداد يعتمد بشكل أساسي على:

  • ربط Firebase بشكل صحيح.
  • إضافة SHA-1.
  • إضافة SHA-256.
  • استخدام ملفات التهيئة الصحيحة.

بعد إكمال هذه الخطوات يمكن تفعيل تسجيل الدخول عبر Google داخل التطبيق بدون مشاكل على Android و iOS.



لمزيد من المقالات : تعلم كيفية ضبط حجم الخط بشكل مثالي في Flutter
لمزيد من المقالات : شرح كيفيه تشفير وفك تشفير الملفات في Flutter باستخدام كود Native
شاهد أيضًا
مقالات ذات صلة

🚫 مانع الإعلانات مفعل

يجب إيقاف مانع الإعلانات لاستكمال تصفح الموقع