نقل البيانات من مجموعة أدوات الهوية من Google إلى مصادقة Firebase

تم إصدار أحدث إصدار من Google Identity Toolkit باسم Firebase Authentication. من الآن فصاعدًا، سيتم إيقاف العمل على ميزات Identity Toolkit، وسيتم تطوير كل الميزات الجديدة في Firebase Authentication. ننصح مطوّري Identity Toolkit بالانتقال إلى Firebase Authentication في أقرب وقت ممكن لتطبيقاتهم، ولكن سيظل بإمكانهم استخدام Identity Toolkit ولن يتم إيقافها نهائيًا بدون إرسال إشعار إضافي.

ميزات جديدة

تتضمّن Firebase Authentication حاليًا بعض التحسينات المهمة على ميزات Google Identity Toolkit:

  • الوصول إلى جميع ميزات Firebase

    Firebase هو نظام أساسي للجوّال يساعد على التطوير السريع للتطبيقات العالية الجودة وزيادة قاعدة المستخدمين وربح المزيد من الأموال. تتألف Firebase من ميزات تكميلية يمكنك دمجها لتلبية احتياجاتك، وتشمل بنية أساسية لإحصاءات الأجهزة الجوّالة، والمراسلة عبر السحابة الإلكترونية، وقاعدة بيانات في الوقت الفعلي، وتخزين الملفات، واستضافة ثابتة، والإعداد عن بُعد، والإبلاغ عن الأعطال في الأجهزة الجوّالة، واختبار Android.

  • واجهات المستخدم المعدَّلة

    أعدنا إنشاء مسارات واجهة المستخدم بالكامل استنادًا إلى أحدث أبحاث تجربة المستخدم من Google. ويشمل ذلك استرداد كلمة المرور وربط الحسابات ومسارات تحديد هوية الحسابات الجديدة/الحالية التي تستغرق غالبًا وقتًا طويلاً لإنشاء الرموز البرمجية و تصحيح الأخطاء. وهي تدمج ميزة Smart Lock لكلمات المرور على أجهزة Android، ما أدى إلى تحسين الإحالات الناجحة لتسجيل الدخول والاشتراك في التطبيقات المشارِكة بشكل كبير. تتيح هذه الميزة أيضًا تعديلات سهلة على المظهر لتتناسب مع تطبيقك، ولتمكين المستخدمين من تخصيص التطبيق على أكمل وجه، تم إتاحة إصدارَي Android وiOS المتاحَين للجميع.

  • إعداد الخادم المبسّط

    سهّلنا على المطوّرين استخدام Firebase Authentication. من خلال استخدام "مجموعة أدوات تحديد الهوية"، لاحظنا أنّ العديد من المطوّرين اختاروا عدم تنفيذ مسار استرداد البريد الإلكتروني، ما جعل من المستحيل على المستخدمين استرداد حساباتهم في حال نسيان كلمة المرور. يمكن أن تُرسِل Firebase Authentication رسائل التحقّق من البريد الإلكتروني وإعادة ضبط كلمة المرور وتغيير كلمة المرور إلى المستخدم، ويمكن تخصيص النص بسهولة لمستخدميك. بالإضافة إلى ذلك، لم تعُد بحاجة إلى استضافة تطبيقات مصغّرة لواجهة المستخدم لاستضافة عمليات إعادة التوجيه و إكمال عمليات تغيير كلمة المرور.

  • وحدة تحكّم المشرف الجديدة

    تتضمّن Firebase وحدة تحكّم جديدة للمطوّرين، ويسمح لك قسم "المصادقة" بعرض المستخدمين وتعديلهم وحذفهم. يمكن أن يكون هذا مفيدًا جدًا في تصحيح أخطاء عمليات تسجيل الدخول والاشتراك. تتيح لك وحدة التحكّم أيضًا ضبط طرق المصادقة وتخصيص نماذج الرسائل الإلكترونية.

  • حِزم SDK الجديدة

    تتوفّر الآن جميع واجهات برمجة تطبيقات الخادم في Identity Toolkit بشكلٍ أصلي مع كل مكتبة من مكتبات العملاء (Android وiOS والويب). سيتمكّن المطوّرون من تسجيل دخول المستخدمين القدامى والجدد وتسجيلهم، والوصول إلى خصائص المستخدمين، وربط الحسابات وتعديلها وحذفها، وإعادة ضبط كلمات المرور، وغير ذلك بدون الارتباط بواجهة مستخدم ثابتة. يمكنك إنشاء خطوات تسجيل الدخول و التجربة بالكامل يدويًا على واجهة برمجة التطبيقات هذه إذا كنت تفضّل ذلك.

  • إدارة الجلسات للتطبيقات المتوافقة مع الأجهزة الجوّالة

    باستخدام Identity Toolkit، أنشأت التطبيقات حالة الجلسة الخاصة بها استنادًا إلى حدث المصادقة الأولي من Identity Toolkit. تستخدِم Firebase Auth خدمة خلفية تأخذ رمز إعادة التنشيط الذي تم إنشاؤه من حدث المصادقة وتستبدِله برموز وصول صالحة لمدة ساعة لنظامَي التشغيل Android وiOS و JavaScript. عندما يغيّر المستخدم كلمة المرور، لن تتمكّن علامات إعادة التنشيط من إنشاء رموز وصول جديدة، ما يؤدي إلى إيقاف إمكانية الوصول إلى أن تتمكّن المستخدم من إعادة المصادقة على ذلك الجهاز.

  • المصادقة المجهولة وGitHub

    تتوافق Firebase Authentication مع نوعَين جديدَين من المصادقة: GitHub و غير معروف. يمكن استخدام ميزة "تسجيل الدخول بدون إظهار الهوية" لإنشاء معرّف مستخدم فريد بدون طلب إجراء أي عملية تسجيل دخول أو اشتراك من المستخدم. باستخدام مستخدم مجهول الهوية، يمكنك الآن إجراء طلبات بيانات من واجهة برمجة التطبيقات تمّت مصادقة المستخدم عليها، تمامًا كما يمكنك فعل ذلك باستخدام مستخدم عادي. عندما يقرّر المستخدم الاشتراك في حساب، يتم الاحتفاظ بكل النشاط باستخدام رقم تعريف المستخدم نفسه. وهذا مناسب تمامًا للحالات التي تتطلّب استخدام سلة تسوّق من جهة الخادم أو أي تطبيق تريد فيه إشراك العميل قبل توجيهه إلى مسار تسجيل.

الاختلافات في الميزات

لا تتوفّر حاليًا بعض ميزات Identity Toolkit في Firebase Authentication، بينما تمت إعادة تصميم ميزات أخرى وتعمل بشكل مختلف. يمكنك اختيار عدم نقل البيانات على الفور إذا كانت هذه الميزات مهمة لتطبيقك. في كثير من الحالات، قد لا تكون هذه الميزات مهمة لتطبيقك أو قد يكون هناك بدائل سهلة تتيح لك مواصلة نقل البيانات.

الاختلافات من جهة الخادم

لم يطرأ سوى تعديلات طفيفة على خدمة Identity Toolkit الأساسية وواجهات برمجة التطبيقات REST API الأساسية وطريقة التحقّق من صحة الحسابات وقاعدة بيانات المستخدمين الأساسية. ولكن تغيّرت بعض الميزات وطريقة دمج Firebase Authentication في خدمتك.

  • موفّرو الهوية

    لا تتوفّر خدمة PayPal وAOL. سيظل بإمكان المستخدمين الذين لديهم حسابات من موفّري خدمات إدارة الهوية هؤلاء تسجيل الدخول إلى تطبيقك باستخدام عملية استرداد كلمة المرور وإعداد كلمة مرور لحساباتهم.

  • مكتبات الخادم

    تتوفّر حاليًا حِزم تطوير البرامج (SDK) لمشرفي Firebase للغات البرمجية Java وNode.js وPython وGo وC#.

  • الرسائل الإلكترونية لإدارة الحساب

    يمكن أن تُجري Firebase عمليات إعادة ضبط كلمة المرور وإثبات ملكية البريد الإلكتروني ورسائل تغيير البريد الإلكتروني، أو يمكن أن يُجريها المطوِّر من خلال خادم البريد الخاص به. لا تتيح نماذج الرسائل الإلكترونية في Firebase حاليًا سوى إمكانية تخصيص محدودة.

  • تأكيد تغيير عنوان البريد الإلكتروني

    في Identity Toolkit، عندما يقرر المستخدم تغيير عنوان بريده الإلكتروني، يتم إرسال رسالة إلكترونية إلى العنوان الجديد تتضمّن رابطًا لمواصلة عملية تغيير عنوان البريد الإلكتروني.

    تؤكد Firebase تغيير عنوان البريد الإلكتروني من خلال إرسال رسالة إلكترونية لإبطال الاشتراك إلى عنوان البريد الإلكتروني القديم مع تضمين رابط لإلغاء التغيير.

  • طرح موفِّر الهوية (IdP)

    كانت أداة Identity Toolkit تتيح إضافة موفّري الهوية إلى نظام تسجيل الدخول تدريجيًا، حتى تتمكّن من تجربة تأثير ذلك على طلبات الدعم. تمت إزالة هذه الميزة في Firebase Authentication.

الاختلافات من جهة العميل

في Firebase، يتم تقسيم الميزات التي يوفّرها Google Identity Toolkit إلى عنصرين:

  • حِزم تطوير البرامج (SDK) لمصادقة Firebase

    في Firebase Authentication، تم تجميع الوظائف التي يوفّرها واجهة برمجة التطبيقات REST API في حِزم تطوير البرامج (SDK) للعملاء المتوفّرة لنظامَي التشغيل Android وiOS و JavaScript. يمكنك استخدام حزمة SDK لتسجيل دخول المستخدمين وتسجيلهم، والوصول إلى معلومات ملفه الشخصي، وربط الحسابات وتعديلها وحذفها، وإعادة ضبط كلمات المرور باستخدام حزمة SDK للعملاء بدلاً من التواصل مع خدمة الخلفية من خلال طلبات REST.

  • FirebaseUI Auth

    تمّت إعادة إنشاء جميع مسارات واجهة المستخدم التي تدير تسجيل الدخول والاشتراك واسترداد كلمة المرور وربط الحساب باستخدام حِزم تطوير البرامج (SDK) لـ Frebase Authentication. وتتوفّر هذه الحِزم كحِزم تطوير برامج (SDK) مفتوحة المصدر لنظامَي التشغيل iOS وAndroid، ما يتيح لك تخصيص عمليات الإعداد بالكامل بطرق لا يمكن إجراؤها باستخدام Identity Toolkit.

تشمل الاختلافات الإضافية ما يلي:

  • الجلسات ونقل البيانات

    بما أنّه تتم إدارة الجلسات بشكلٍ مختلف في Identity Toolkit وFirebase Authentication، سيتم إنهاء جلسات المستخدمين الحالية عند ترقية حزمة تطوير البرامج (SDK)، وسيكون على المستخدمين تسجيل الدخول مرة أخرى.

قبل البدء

قبل أن تتمكّن من نقل البيانات من Identity Toolkit إلى Firebase Authentication، يجب

  1. افتح وحدة تحكُّم Firebase، وانقر على استيراد مشروع Google، واختَر مشروع Identity Toolkit.

  2. انقر على > الأذونات لفتح صفحة "إدارة الهوية وإمكانية الوصول والمشرف".

  3. افتح حسابات الخدمة. يمكنك هنا الاطّلاع على حساب الخدمة الذي سبق أن أعددته لـ Identity Toolkit.

  4. بجانب حساب الخدمة، انقر على > إنشاء مفتاح. بعد ذلك، في مربّع حوار إنشاء مفتاح خاص، اضبط نوع المفتاح على JSON وانقر على إنشاء. يتم تنزيل ملف JSON يحتوي على بيانات اعتماد حساب الخدمة. ستحتاج إلى ذلك لتهيئة حزمة SDK في الخطوة التالية.

  5. ارجع إلى وحدة تحكُّم Firebase. في قسم "المصادقة" (Auth)، افتح صفحة نماذج الرسائل الإلكترونية (Email Templates). في هذه الصفحة، يمكنك تخصيص نماذج الرسائل الإلكترونية لتطبيقك.

    في Identity Toolkit، عندما يعيد المستخدمون ضبط كلمات المرور ويغيّرون عناوين البريد الإلكتروني ويثبتون ملكية عناوين البريد الإلكتروني، عليك الحصول على رمز خارج نطاق المكتب من خادم Identity Toolkit، ثم إرسال الرمز إلى المستخدمين عبر البريد الإلكتروني. تُرسِل Firebase رسائل إلكترونية استنادًا إلى النماذج التي تضبطها بدون الحاجة إلى تنفيذ أي إجراءات إضافية.

  6. اختياري: إذا كنت بحاجة إلى الوصول إلى خدمات Firebase على خادمك، ثبِّت حزمة تطوير البرامج (SDK) لمنصّة Firebase.

    1. يمكنك تثبيت وحدة Firebase Node.js باستخدام npm:

      $ npm init
      $ npm install --save firebase-admin
      
    2. في رمزك البرمجي، يمكنك الوصول إلى Firebase باستخدام:

      var admin = require('firebase-admin');
      var app = admin.initializeApp({
        credential: admin.credential.cert('path/to/serviceAccountCredentials.json')
      });
      

بعد ذلك، أكمِل خطوات نقل البيانات لنظام التشغيل المتوافق مع تطبيقك: Android iOS والويب.

الخوادم وJavaScript

التغييرات البارزة

هناك عدد من الاختلافات الإضافية في عملية تنفيذ Firebase على الويب مقارنةً بـ Identity Toolkit.

  • إدارة جلسات الويب

    في السابق، عندما كان المستخدم يُجري مصادقة باستخدام أداة Identity Toolkit، كان يتم ضبط ملف تعريف ارتباط للمستخدم كان يُستخدَم لبدء الجلسة. كانت مدة صلاحية ملف تعريف الارتباط هذا أسبوعَين، وكان يُستخدَم للسماح للمستخدم باستخدام تطبيقات مصغّرة لإدارة الحساب من أجل تغيير كلمة المرور وعنوان البريد الإلكتروني. كانت بعض المواقع الإلكترونية تستخدِم ملف تعريف الارتباط هذا لمصادقة جميع طلبات الصفحات الأخرى على الموقع الإلكتروني. استخدمت المواقع الإلكترونية الأخرى ملف تعريف الارتباط لإنشاء ملفات تعريف ارتباط خاصة بها من خلال نظام إدارة ملفات تعريف الارتباط في إطار العمل.

    تدير حِزم تطوير البرامج (SDK) لعملاء Firebase الآن رموز تعريف Firebase وتعمل مع الخلفية في Firebase Authentication للحفاظ على حداثة الجلسة. تنتهي صلاحية الجلسات في الخلفية عند إجراء تغييرات مهمة على الحساب (مثل تغييرات كلمة المرور للمستخدم). لا يتم تلقائيًا ضبط رموز تعريف Firebase على أنّها ملفات تعريف ارتباط على مزوّد خدمة الويب، وفترة صلاحيتها ساعة واحدة فقط. ما لم تكن تريد جلسات تبلغ مدتها ساعة واحدة فقط، لا تكون علامات Firebase ID مناسبة لاستخدامها كملف تعريف ارتباط للتحقّق من جميع طلبات الصفحات. بدلاً من ذلك، عليك إعداد مستمع لتسجيل دخول المستخدم، الحصول على الرمز المميّز لتعريف Firebase، التحقّق من صحة الرمز المميّز، وإنشاء ملف تعريف الارتباط الخاص بك من خلال نظام إدارة ملفات تعريف الارتباط في إطار العمل.

    عليك ضبط مدة جلسة ملفّ تعريف الارتباط استنادًا إلى متطلّبات أمان تطبيقك.

  • مسار تسجيل الدخول على الويب

    في السابق، كانت تتم إعادة توجيه المستخدمين إلى accountchooser.com عند بدء تسجيل الدخول لمعرفة المعرّف الذي يريد المستخدم استخدامه. تبدأ عملية Firebase Auth واجهة المستخدم الآن بقائمة طُرق تسجيل الدخول، بما في ذلك خيار بريد إلكتروني ينتقل إلى accountchooser.com للويب ويستخدم hintRequest API على Android. بالإضافة إلى ذلك، لم تعُد عناوين البريد الإلكتروني مطلوبة في واجهة مستخدم Firebase. سيسهّل ذلك إتاحة استخدام ميزة "المستخدمون المجهولون" أو مستخدمي المصادقة المخصّصة أو المستخدمين من مقدّمي الخدمات الذين لا يشترطون استخدام عناوين البريد الإلكتروني.

  • تطبيق مصغّر لإدارة الحساب

    توفّر هذه الأداة المصغّرة واجهة مستخدم للمستخدمين من أجل تغيير عناوين البريد الإلكتروني أو كلمات المرور أو إلغاء ربط حساباتهم بمزوّدي الهوية. وهو قيد التطوير حاليًا.

  • زر/تطبيق مصغّر لتسجيل الدخول

    لم تعُد التطبيقات المصغّرة، مثل زر تسجيل الدخول وبطاقة المستخدم، متاحة. ويمكن إنشاؤها بسهولة بالغة باستخدام واجهة برمجة التطبيقات Firebase Authentication API.

  • لا يتوفّر signOutUrl

    عليك الاتصال برقم firebase.auth.signOut() ومعالجة طلب معاودة الاتصال.

  • عدم توفّر oobActionUrl

    تتولى منصة Firebase الآن إرسال الرسائل الإلكترونية ويتم ضبطها في وحدة تحكّم Firebase.

  • تخصيص CSS

    تستخدم FirebaseUI أسلوب Material Design Lite الذي يضيف الرسومات المتحركة لتصميم Material Design بشكل ديناميكي.

الخطوة 1: تغيير رمز الخادم

  1. إذا كان خادمك يعتمد على رمز مميّز في Identity Toolkit (صالح لمدة أسبوعَين) لمحاولة إدارة جلسات مستخدمي الويب، عليك تحويل الخادم لاستخدام ملف تعريف ارتباط الجلسة الخاص به.

    1. نفِّذ نقطة نهاية من أجل التحقّق من صحة رمز تعريف Firebase وضبط ملف تعريف ارتباط الجلسة للمستخدم. يُرسِل تطبيق العميل رمز تعريف Firebase إلى نقطة النهاية هذه.
    2. إذا كان الطلب الوافد يحتوي على ملف تعريف ارتباط الجلسة الخاص بك، يمكنك اعتبار المستخدم مُعتمَدًا. وإلا، يُرجى التعامل مع الطلب على أنّه غير مصادقة.
    3. إذا كنت لا تريد أن يفقد أي من المستخدمين جلساتهم الحالية التي تم تسجيل الدخول إليها، عليك الانتظار لمدة أسبوعين حتى تنتهي صلاحية جميع علامات Identity Toolkit، أو يمكنك أيضًا إجراء عملية التحقّق من الرمز المميّز المزدوج لتطبيق الويب كما هو موضّح أدناه في الخطوة 3.
  2. بعد ذلك، يجب تعديل منطق التحقّق من صحة الرمز المميّز لأنّ رموز Firebase المميّزة تختلف عن رموز Identity Toolkit المميّزة. ثبِّت حزمة تطوير البرامج (SDK) لخادم Firebase على خادمك، أو إذا كنت تستخدم لغة غير متوافقة مع حزمة تطوير البرامج (SDK) لخادم Firebase، نزِّل مكتبة التحقّق من صحة رمز JWT لبيئة التشغيل وتحقّق من صحة الرمز المميّز بشكلٍ صحيح.

  3. عند إجراء التعديلات أعلاه لأول مرة، قد يظل لديك مسارات رموز برمجية تعتمد على الرموز المميّزة في Identity Toolkit. إذا كانت لديك تطبيقات iOS أو Android، سيتعين على المستخدمين الترقية إلى الإصدار الجديد من التطبيق لكي تعمل مسارات الرموز البرمجية الجديدة. إذا كنت لا تريد إجبار المستخدمين على تحديث تطبيقك، يمكنك إضافة منطق إضافي للتحقّق من الخادم يفحص الرمز المميّز ويحدّد ما إذا كان يحتاج إلى استخدام حزمة تطوير البرامج (SDK) لـ Firebase أو حزمة تطوير البرامج (SDK) لـ Identity Toolkit للتحقّق من صحة الرمز المميّز. إذا كان لديك فقط تطبيق ويب، سيتم نقل جميع طلبات المصادقة الجديدة إلى Firebase، وبالتالي، ما عليك سوى استخدام methodsالتحقّق من رمز Firebase العميل.

اطّلِع على مرجع Firebase Web API.

الخطوة 2: تعديل ملف HTML

  1. أضِف رمز إعداد Firebase إلى تطبيقك:

    1. افتح مشروعك في وحدة تحكُّم Firebase.
    2. في صفحة "نظرة عامة"، انقر على إضافة تطبيق، ثمّ انقر على إضافة Firebase إلى تطبيقك على الويب. سيظهر مقتطف رمز لإعداد Firebase.
    3. انسخ مقتطف الإعدادات الأولية والصقه في صفحة الويب.
  2. أضِف FirebaseUI Auth إلى تطبيقك:

    <script src="https://www.gstatic.com/firebasejs/ui/live/0.4/firebase-ui-auth.js"></script>
    <link type="text/css" rel="stylesheet" href="https://www.gstatic.com/firebasejs/ui/live/0.4/firebase-ui-auth.css" />
    <!-- *******************************************************************************************
       * TODO(DEVELOPER): Paste the initialization snippet from:
       * Firebase Console > Overview > Add Firebase to your web app. *
       ***************************************************************************************** -->
    <script type="text/javascript">
      // FirebaseUI config.
      var uiConfig = {
        'signInSuccessUrl': '<url-to-redirect-to-on-success>',
        'signInOptions': [
          // Leave the lines as is for the providers you want to offer your users.
          firebase.auth.GoogleAuthProvider.PROVIDER_ID,
          firebase.auth.FacebookAuthProvider.PROVIDER_ID,
          firebase.auth.TwitterAuthProvider.PROVIDER_ID,
          firebase.auth.GithubAuthProvider.PROVIDER_ID,
          firebase.auth.EmailAuthProvider.PROVIDER_ID
        ],
        // Terms of service url.
        'tosUrl': '<your-tos-url>',
      };
    
      // Initialize the FirebaseUI Widget using Firebase.
      var ui = new firebaseui.auth.AuthUI(firebase.auth());
      // The start method will wait until the DOM is loaded.
      ui.start('#firebaseui-auth-container', uiConfig);
    </script>
    
  3. أزِل حزمة تطوير البرامج (SDK) لـ Identity Toolkit من تطبيقك.

  4. إذا كنت تعتمد على رمز تعريف Identity Toolkit لإدارة الجلسات، عليك إجراء التغييرات التالية من جهة العميل:

    1. بعد تسجيل الدخول بنجاح باستخدام Firebase، يمكنك الحصول على رمز تعريف Firebase من خلال الاتصال بالرقم firebase.auth().currentUser.getToken().

    2. أرسِل الرمز المميّز لتعريف Firebase إلى خادم الخلفية، وتحقّق منه، ثم أطلِق ملف تعريف ارتباط الجلسة الخاص بك.

      لا تعتمد فقط على ملف تعريف ارتباط الجلسة عند تنفيذ عمليات حساسة أو إرسال طلبات تعديل مصادق عليها إلى خادمك. عليك توفير حماية إضافية من تزوير الطلبات من مواقع إلكترونية مختلفة (CSRF).

      إذا لم يقدّم إطار العمل حماية من هجمات CSRF، يمكنك منع هجمات مماثلة من خلال الحصول على رمز تعريف Firebase للمستخدِم الذي سجّل الدخول باستخدام getToken() وتضمين الرمز المميّز مع كل طلب (سيتم أيضًا إرسال ملف تعريف الارتباط للجلسة تلقائيًا). بعد ذلك، عليك التحقّق من صحة الرمز المميّز باستخدام حزمة تطوير البرامج (SDK) لخادم Firebase بالإضافة إلى التحقّق من ملف تعريف ارتباط الجلسة، الذي أكمله إطار عمل الخلفية. سيجعل ذلك من الصعب على هجمات CSRF أن تنجح، لأنّ رمز تعريف Firebase لا يتم تخزينه إلا باستخدام ميزة تخزين الويب ولا يتم تخزينه مطلقًا في ملف تعريف ارتباط.

    3. تكون الرموز المميّزة في Identity Toolkit صالحة لمدة أسبوعَين. يمكنك مواصلة إصدار الرموز المميّزة التي تستمر لمدة أسبوعَين، أو يمكنك جعلها أطول أو أقصر استنادًا إلى متطلبات الأمان في تطبيقك. عند تسجيل خروج المستخدِم، امسح ملف تعريف ارتباط الجلسة.

الخطوة 3: تعديل عناوين URL لإعادة التوجيه لموفِّر الهوية (IdP)

  1. في "وحدة تحكّم Firebase"، افتح قسم "المصادقة" وانقر على علامة التبويب طريقة تسجيل الدخول.

  2. لكل موفِّر خدمة تسجيل دخول موحَّد تتيحه، عليك إجراء ما يلي:

    1. انقر على اسم مقدّم خدمة تسجيل الدخول.
    2. انسخ معرّف الموارد المنتظم (URI) لإعادة التوجيه عبر بروتوكول OAuth.
    3. في وحدة تحكّم المطوّر لموفّر خدمة تسجيل الدخول، عدِّل معرّف الموارد المنتظم (URI) الخاص بإعادة التوجيه في OAuth.

Android

الخطوة 1: إضافة Firebase إلى تطبيقك

  1. افتح وحدة تحكُّم Firebase، و اختَر مشروع Identity Toolkit الذي سبق لك استيراده.

  2. في صفحة "نظرة عامة"، انقر على إضافة تطبيق، ثم انقر على إضافة Firebase إلى تطبيق Android. في مربّع الحوار "إضافة Firebase"، أدخِل اسم بسته تطبيقك ومعرف بصمة شهادة التوقيع وانقر على إضافة تطبيق. بعد ذلك، يتم تنزيل ملف الإعدادات google-services.json على جهاز الكمبيوتر.

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

  4. في ملف build.gradle على مستوى المشروع (<var>your-project</var>/build.gradle)، حدِّد اسم حزمة تطبيقك في القسم defaultConfig:

    defaultConfig {
       …..
      applicationId "com.your-app"
    }
    
  5. في ملف build.gradle على مستوى المشروع أيضًا، أضِف تبعية لتضمين المكوّن الإضافي google-services:

    buildscript {
     dependencies {
       // Add this line
       classpath 'com.google.gms:google-services:3.0.0'
     }
    }
    
  6. في ملف build.gradle على مستوى التطبيق (<var>my-project</var>/<var>app-module</var>/build.gradle)، أضِف السطر التالي في أسفل الملف لتفعيل المكوّن الإضافي google-services:

    // Add to the bottom of the file
    apply plugin: 'com.google.gms.google-services'
    

    يستخدم المكوّن الإضافي google-services ملف google-services.json لضبط تطبيقك لاستخدام Firebase.

  7. في ملف build.gradle على مستوى التطبيق أيضًا، أضِف التبعية لـ "مصادقة Firebase":

    compile 'com.google.firebase:firebase-auth:23.1.0'
    compile 'com.google.android.gms:play-services-auth:21.3.0'
    

الخطوة 2: إزالة حزمة تطوير البرامج Identity Toolkit SDK

  1. أزِل إعدادات Identity Toolkit من ملف AndroidManifest.xml. يتم تضمين هذه المعلومات في ملف google-service.json وتحميلها من خلال المكوّن الإضافي google-services.
  2. أزِل حزمة تطوير البرامج (SDK) لـ Identity Toolkit من تطبيقك.

الخطوة 3: إضافة FirebaseUI إلى تطبيقك

  1. أضِف FirebaseUI Auth إلى تطبيقك.

  2. في تطبيقك، استبدِل طلبات البيانات إلى حزمة تطوير البرامج (SDK) لـ Identity Toolkit بطلبات البيانات إلى FirebaseUI.

iOS

الخطوة 1: إضافة Firebase إلى تطبيقك

  1. أضِف حزمة تطوير البرامج (SDK) لمنصّة Firebase إلى تطبيقك من خلال تنفيذ الأوامر التالية:

    $ cd your-project directory
    $ pod init
    $ pod 'Firebase'
    
  2. افتح وحدة تحكُّم Firebase، و اختَر مشروع Identity Toolkit الذي سبق لك استيراده.

  3. في صفحة "نظرة عامة"، انقر على إضافة تطبيق، ثمّ انقر على إضافة Firebase إلى تطبيقك على iOS. في مربّع الحوار "إضافة Firebase"، أدخِل رقم تعريف حِزمة تطبيقك و رقم تعريف متجر التطبيقات، ثمّ انقر على إضافة تطبيق. بعد ذلك، يتم تنزيل ملف الإعدادات GoogleService-Info.plist على جهاز الكمبيوتر. إذا كان لديك أرقام تعريف حِزم متعددة في مشروعك، يجب ربط كل رقم تعريف حِزمة في وحدة تحكّم Firebase حتى يتمكّن من الحصول على ملف GoogleService-Info.plist خاص به.

  4. انسخ ملف الإعداد إلى جذر مشروع Xcode وأضِفه إلى كل الأهداف.

الخطوة 2: إزالة حزمة تطوير البرامج Identity Toolkit SDK

  1. أزِل GoogleIdentityToolkit من Podfile الخاص بتطبيقك.
  2. نفِّذ الأمر pod install.

الخطوة 3: إضافة FirebaseUI إلى تطبيقك

  1. أضِف FirebaseUI Auth إلى تطبيقك.

  2. في تطبيقك، استبدِل طلبات البيانات إلى حزمة تطوير البرامج (SDK) لـ Identity Toolkit بطلبات البيانات إلى FirebaseUI.