بدء استخدام Firebase Data Connect

في دليل البدء السريع هذا، ستتعلم كيفية:

  • أضِف Firebase Data Connect إلى مشروعك على Firebase.
  • يمكنك إعداد بيئة تطوير تتضمّن إضافة Visual Studio Code للعمل مع مثيل إنتاج.
  • سنوضّح لك بعد ذلك كيفية تنفيذ ما يلي:
    • أنشئ مخططًا باستخدام مثال لتطبيق البريد الإلكتروني.
    • حدِّد طلبات البحث والتغيّرات في المخطط.
    • استخدِم حِزم تطوير البرامج (SDK) التي يتم إنشاؤها تلقائيًا لطلب طلبات البحث والتغييرات هذه من عملائك.
    • انشر النموذج الأوّلي النهائي للإنتاج.

المتطلبات الأساسية

لاستخدام دليل البدء السريع هذا، ستحتاج إلى ما يلي.

إضافة Data Connect إلى مشروعك وإنشاء مصدر بيانات

  1. أنشئ مشروعًا على Firebase، إذا لم يسبق لك ذلك.
    1. في وحدة تحكُّم Firebase، انقر على إضافة مشروع، ثم اتّبِع التعليمات الظاهرة على الشاشة.
  2. عليك ترقية مشروعك إلى خطة Blaze. يتيح لك هذا إنشاء مثيل Cloud SQL للمثيل PostgreSQL.

  3. انتقل إلى قسم "Data Connect" (ربط البيانات) في وحدة تحكم Firebase واتبع سير عمل إعداد المنتج.

  4. اختيار موقع لقاعدة بيانات CloudSQL لقاعدة بيانات PostgreSQL

  5. قم بتدوين أسماء المشروع والخدمة وقاعدة البيانات ومعرفات التأكيد لاحقًا.

  6. اتّبِع خطوات عملية الإعداد المتبقية، ثم انقر على تمّ.

اختيار بيئة تطوير وإعدادها

ستبدأ باستخدام Data Connect عن طريق إنشاء نماذج أولية لتطبيق ما في Visual Studio Code.

اختياريًا، يمكنك تثبيت قاعدة بيانات PostgreSQL محلية للتطوير المحلي باستخدام محاكي Data Connect. نتناول هذا الإعداد في نهاية دليل البدء السريع هذا.

يدعم Data Connect تجربتي تطوير للنماذج الأولية:

  • إذا كنت مطوّر على الويب أو Kotlin Android، يمكنك إنشاء نماذج أولية للمخططات والعمليات محليًا أثناء الاتصال بمثيل Cloud SQL لمثيل PostgreSQL، أو (اختياريًا) تشغيل PostgreSQL محليًا.
  • إذا كنت مطوّر برامج على الويب، يمكنك استخدام IDX لإنشاء نموذج أولي في مساحة عمل IDX باستخدام نموذج IDX تم إعداده مسبقًا مع PostgreSQL، وإضافة VS Code مع محاكي Data Connect، ورمز البدء السريع الذي تم إعداده لك.

تطوير رمز VS

إذا كنت تريد التطوير محليًا بدلاً من استخدام IDX، يمكنك إعداد الإضافة "Firebase VS" لمساعدتك في تكرار التطوير بسرعة باستخدام ميزة "إنشاء حزمة SDK" للويب، وKotlin Android، وقريبًا نظام التشغيل iOS.

  1. أنشئ دليلاً جديدًا لمشروعك المحلي.
  2. افتح VS Code في الدليل الجديد.
  3. نزِّل الإضافة في حزمة VSIX، من مساحة التخزين في Firebase.
  4. في VS Code، من القائمة عرض، اختَر الإضافات.
  5. في شريط عناوين لوحة الإضافات، انقر على رمز القائمة more_horiz، ثم اتّبِع خطوات التثبيت من VSIX....

تطوير IDX

IDX هو بيئة محسّنة لتطوير تطبيقات الويب. إذا كنت مطوّرًا لنظام التشغيل Android (Kotlin)، اتّبِع الخطوات الواردة في علامة التبويب VS Code تطوير.

لإعداد نموذج Data Connect IDX:

  1. يمكنك الوصول إلى النموذج على موقع Project IDX الإلكتروني.
  2. اتّبِع خطوات عملية الإعداد.

إعداد مشروعك على الجهاز

ثبِّت واجهة سطر الأوامر (CLI) باتباع التعليمات العادية.

بعد ذلك، فعِّل تجربة Firebase Data Connect.

firebase experiments:enable dataconnect

لإعداد مشروعك المحلي، سنقوم بتهيئة دليل مشروعك وتحديث بعض ملفات التهيئة اللازمة لإنشاء الأكواد.

إعداد دليل مشروعك

قم بتهيئة دليل مشروعك.

إعداد إضافة Firebase

في اللوحة اليمنى لرمز VS، انقر على رمز Firebase لفتح واجهة مستخدم إضافة إضافة رمز VS من Firebase.

في واجهة مستخدم إضافة Firebase:

  1. تأكَّد من أنّك سجّلت الدخول.
  2. في "وحدة تحكُّم Firebase"، تأكَّد من اكتمال عملية إعداد Data Connect، بما في ذلك توفير قاعدة البيانات.
  3. انقر على الزر تشغيل تهيئة firebase.
  4. تحقَّق من علامة التبويب Terminal في اللوحة السفلية لرمز VS للاطّلاع على الطلبات.
  5. اختَر Data Connect كميزة لاستخدامها في هذا الدليل.
  6. عندما يُطلب منك، أدخِل أرقام تعريف المشروع والخدمة وقاعدة البيانات الخاصة بمشروع Data Connect الذي أنشأته في وقت سابق في وحدة التحكّم.

إعداد المحطة الطرفية

  1. إذا لزم الأمر، سجِّل الدخول باستخدام firebase login.
  2. في "وحدة تحكُّم Firebase"، تأكَّد من اكتمال عملية إعداد Data Connect، بما في ذلك توفير قاعدة البيانات.
  3. شغِّل firebase init لإعداد دليلك كمشروع Firebase، مع اتّباع التعليمات التي تظهر على الشاشة.
  4. اختَر Data Connect كميزة لاستخدامها في هذا الدليل.
  5. عندما يُطلب منك، أدخِل أرقام تعريف المشروع والخدمة وقاعدة البيانات الخاصة بمشروع Data Connect الذي أنشأته في وقت سابق في وحدة التحكّم.

ستنشئ أي من المسارَين ملفَي firebase.json و.firebaserc وdataconnect أدلة فرعية تتضمّن ملفات dataconnect.yaml وconnector.yaml المهمة في دليل العمل المحلي.

ضبط مكان إنشاء رمز حزمة تطوير البرامج (SDK)

ينشئ Data Connect تلقائيًا رمز حزمة SDK أثناء تعديل المخطّط.

لتحديد مكان إنشاء حِزم SDK، عليك تعديل ملف الموصل الأولي في dataconnect/connector/connector.yaml.

connectorId: "my-connector"
authMode: "PUBLIC"
generate:
  javascriptSdk:
    outputDir: "../../js-email-generated"
    package: "@email-manager/emails"
    packageJsonDir: "../../"
  kotlinSdk:
    outputDir: "../kotlin-email-generated"
    package: com.myemailapplication

التعرف على مجموعة أدوات Data Connect

إن "مجموعة أدوات ربط البيانات" هي أحد مكونات إضافة رمز مقابل Firebase يساعد في تطوير المخطط، وإدارة طلبات البحث والتغييرات، مباشرةً من Visual Studio Code.

لإلقاء نظرة على ميزات مجموعة الأدوات:

  1. افتح دليل مشروع Firebase في VS Code، إذا لم يسبق لك إجراء ذلك.
  2. في VS Code، انقر على رمز Firebase في اللوحة اليمنى لفتح واجهة المستخدم لإضافة رمز Firebase VS.

خلال عملية التطوير، لاحِظ أنّ مجموعة الأدوات تتيح لك التفاعل مع بيئتك المحلية بالإضافة إلى موارد الإنتاج. في مرحلة البدء السريع هذه، ستتفاعل مع بيئة الإنتاج.

إضافة VS Code لـ Data Connect، في IDX

توفّر لك واجهة المستخدم الخاصة بالإضافة العديد من الميزات المفيدة:

في الشريط الجانبي الأساسي لرمز VS:

  • لوحة الإعداد التي تتيح لك تسجيل الدخول إلى Google واختيار مشروع على Firebase
  • لوحة Firebase Data Connect التي تتيح لك التحكّم في المحاكي المدمَج ونشر الموارد اللازمة للإنتاج
  • لوحة FDC Explorer التي تسرد طلبات البحث والتغييرات الضمنية التي يتم إنشاؤها تلقائيًا استنادًا إلى مخططك
في اللوحة السفلية لرمز VS:

  • علامة التبويب تنفيذ اتصال البيانات، مع أدوات تتيح لك تمرير البيانات في الطلبات ومحاكاة المصادقة وعرض النتائج.

قبل البدء في تطوير أحد التطبيقات، ألقِ نظرة على بعض ميزات الإضافة.

تجربة عدسة CodeLens المخصّصة عند استخدام الموارد في ملفات schema.gql وqueries.gql وmutations.gql، بعد كتابة مجموعات الرموز الكاملة من ناحية البنية، تعرض خوارزمية CodeLens المخصّصة الإجراءات التي يمكنك اتخاذها في الجداول والعمليات التي تم تضمينها في نموذج البيان.
  • في الجداول، تساعدك CodeLens في إنشاء طفرات لإضافة بيانات إلى قاعدة بيانات الخلفية.
  • بالنسبة إلى طلبات البحث والتغييرات، تتيح لك CodeLens تنفيذ العمليات محليًا أو على موارد الإنتاج.
ضبط مستوى المصادقة للطلبات في اللوحة السفلية، توفر لوحة تنفيذ اتصال البيانات علامة تبويب "الإعداد" حيث يمكنك اختيار مستويات المصادقة المحاكية للعمليات.
تعبئة المتغيّرات في طلبات البحث والتغيّرات في علامة التبويب "الإعدادات" (Configuration) نفسها، يمكنك تعبئة حمولات البيانات الأساسية للعمليات.
فحص السجلّ والردود والأخطاء في علامة التبويب "الضبط"، يمكنك أيضًا مراجعة علامتَي التبويب "السجلّ" و"النتائج" للاطّلاع على معلومات تصحيح الأخطاء.

إنشاء مخطط Data Connect وطلب بحث

اكتملت عملية الإعداد. الآن يمكننا البدء في التطوير باستخدام Data Connect.

بدء استخدام GraphQL لوضع نماذج للمستخدمين والرسائل الإلكترونية. سيتم تعديل المصادر في:

  • /dataconnect/schema/schema.gql
  • /dataconnect/connector/queries.gql

بدء تطوير مخطط

دوِّن المجلد dataconnect في دليل مشروع Firebase. هذا هو المكان الذي تُحدد فيه نموذج البيانات لقاعدة بيانات Cloud SQL باستخدام GraphQL.

في ملف /dataconnect/schema/schema.gql، ابدأ في تحديد مخطط يتضمن المستخدمين وعناوين البريد الإلكتروني.

المستخدِم

في Data Connect، يتم ربط حقول GraphQL بالأعمدة. المستخدمون لديهم uid وname وعنوان بريد إلكتروني address. تتعرف Data Connect على العديد من أنواع البيانات الأولية: String وDate.

انسخ المقتطف التالي أو أزِل التعليق على السطور المقابلة في الملف.

# File `/dataconnect/schema/schema.gql`

type User @table(key: "uid") {
   uid: String!
   name: String!
   address: String!
}

سيضيف Firebase Data Connect تلقائيًا مفتاح UUID id في حال عدم تقديم أي مفتاح. مع ذلك، أنت تريد في هذه الحالة أن يكون uid هو المفتاح الأساسي، وهو ما يمكنك تنفيذه من خلال التوجيه @table(key: "uid").

البريد الإلكتروني

الآن بعد أن أصبح لديك مستخدمين، يمكنك وضع نماذج لرسائل البريد الإلكتروني. هنا يمكنك إضافة الحقول (أو الأعمدة) النموذجية لبيانات البريد الإلكتروني. هذه المرة، نتجاهل إضافة مفتاح أساسي لأنه يمكنك الاعتماد على Data Connect لإدارته.

# File `/dataconnect/schema/schema.gql`

type Email @table {
   subject: String!
   date: Date!
   text: String!
   from: User!
}

لاحظ أنّه يتم ربط الحقل from بنوع User. يدرك فريق Data Connect أنّ هذه العلاقة بين "Email" و"User" وسيدير هذه العلاقة نيابةً عنك.

نشر المخطّط في قناة الإصدار العلني

نظرًا لأنك تستخدم إضافة Firebase VS Code للعمل مع قاعدة بيانات الإنتاج، فستحتاج إلى نشر المخطط قبل المتابعة.

  1. يمكنك استخدام الإضافة "رمز VS من Firebase" لنشرها.
    • في واجهة مستخدم الإضافة، ضِمن لوحة Firebase Data Connect، انقر على نشر.
  2. ويمكنك بدلاً من ذلك استخدام واجهة سطر الأوامر في Firebase.

    firebase deploy
    
  3. وفي أي من تدفق الإضافة أو واجهة سطر الأوامر، قد تحتاج إلى مراجعة تغييرات المخطط والموافقة على التعديلات التي قد تسبب التدمير. سيُطلب منك تنفيذ ما يلي:

    • مراجعة تغييرات المخطط باستخدام "firebase dataconnect:sql:diff"
    • وعندما تصبح راضيًا عن التغييرات، يمكنك تطبيقها من خلال العملية التي بدأت من خلال firebase dataconnect:sql:migrate.

الاطّلاع على إضافات المخططات التي تم إنشاؤها

أثناء تعديل مخطط البريد الإلكتروني، ينشئ Data Connect تلقائيًا إضافات المخططات وطلبات البحث والتغييرات والفلاتر وعلاقات الجدول. يمكنك عرض هذه التعليمة البرمجية التي تم إنشاؤها بطريقتين.

  • يمكنك الاطّلاع على قائمة بالتغييرات وطلبات البحث الضمنية التي تم إنشاؤها في واجهة واجهة مستخدم إضافة Firebase ضمن لوحة مستكشف FDC.
  • يمكنك الاطّلاع على كل الرموز التي تم إنشاؤها محليًا في المصادر في دليل .dataconnect/schema.

تنفيذ عملية تغيير جذري لإضافة بيانات إلى جدولك

يمكنك رؤية أزرار CodeLens تظهر فوق أنواع GraphQL في /dataconnect/schema/schema.gql.

الاستعلامات والتغيّرات في وقت التطوير

تُعد العمليات المرتبطة بأزرار CodeLens هذه إجراءات سريعة ومفيدة، في هذه الحالة، إضافة البيانات إلى الجدول. يستخدم Data Connect طفرات GraphQL لوصف كيف ومن يمكنه العمل مقابل قاعدة البيانات. يؤدي استخدام هذا الزر إلى إنشاء عملية وقت التطوير للبذرة السريعة للبيانات.

بعد نشر المخطّط في قناة الإصدار العلني، يمكنك استخدام أزرار تشغيل (الإنتاج) في CodeLens لتنفيذ هذه الإجراءات على الخلفية.

كتابة طلب بحث لإدراج عناوين البريد الإلكتروني

الآن الجزء الممتع، الاستعلامات. بصفتك مطورًا، فقد اعتدت على كتابة استعلامات SQL بدلاً من استعلامات GraphQL، لذلك قد يبدو هذا مختلفًا بعض الشيء في البداية. ومع ذلك، فإن GraphQL هي أكثر دقة بكثير وأمانًا من الكتابة من SQL (لغة الاستعلام البنيوية) الأولية. وتسهل إضافة VS Code تجربة التطوير.

بدء تعديل ملف /dataconnect/connector/queries.gql. إذا كنت ترغب في الحصول على جميع رسائل البريد الإلكتروني، فاستخدم استعلامًا كهذا.

# File `/dataconnect/connector/queries.gql`

query listEmails @auth(level: PUBLIC) {
  emails {
    id, subject, text, date
    from {
      name
    }
  }
}

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

توجيه @auth

لا يتم استخدام التوجيه @auth بكامل طاقته في هذا المثال، ولكن المفهوم قوي حقًا. هذه هي الطريقة التي تقرر بها سياسة التفويض للعمليات مقابل قاعدة البيانات.

هذا الاستعلام واضح ومباشر إلى حد ما، حيث تبدأ الميزات الشيّقة لـ Data Connect في التألق عندما تقوم بإجراء عمليات ربط أكثر تعقيدًا بعلاقات عديدة إلى كثيرة. سوف تتعلم المزيد عن هذا أثناء استكشاف الأدوات والوثائق.

اختبار طلب البحث

الآن بعد أن تم إنشاء هذا الاستعلام، تحقق مما إذا كان يعمل قبل دمجه في التعليمة البرمجية للعميل. يتمثّل جزء من تجربة المطوّرين في Data Connect في القدرة على تكرار نتائج طلبات البحث واختبارها بسرعة باستخدام لوحة Data Connect Execution.

يمكنك تقديم الوسيطات التي يحتاجها هذا الاستعلام ثم النقر فوق زر CodeLens أعلى اسم الاستعلام. يقوم هذا بتنفيذ الاستعلام وعرض النتائج، بحيث يمكنك أن ترى أنه يعمل كما هو متوقع.

إنشاء رمز حزمة تطوير البرامج (SDK) للعميل وطلب بيانات من تطبيق عميل

لإغلاق دورة التطوير، ادمج هذا الاستعلام في رمز العميل.

يمكنك كتابة عميل لتوضيح استدعاء الاستعلام وردود التعامل من خلال خدمة Data Connect.

  1. حدِّد موقع المصادر التي تم إنشاؤها تلقائيًا في الموقع الذي حددته سابقًا في ملف connector.yaml.
  2. أضِف Firebase إلى مشروعك وسجِّل تطبيقك وثبِّت حزمة تطوير البرامج (SDK) الأساسية المناسبة لمنصة Firebase:

  3. إذا كنت لا تستخدم IDX، يمكنك إعداد برنامج يمكن الاتصال به من سطر الأوامر.

JavaScript

أنشئ ملف مصدر، clientTest.js، وانسخ الرمز التالي.

const { initializeApp } = require("firebase/app");
const {
  connectDataConnectEmulator,
  getDataConnect,
} = require("firebase/data-connect");
const { listEmails, connectorConfig } = require("@email-manager/emails");

// TODO: Replace the following with your app's Firebase project configuration
const firebaseConfig = {
  //...
};

const app = initializeApp(firebaseConfig);
const dc = getDataConnect(app, connectorConfig);

// Remove the following line to connect directly to production
connectDataConnectEmulator(dc, "localhost", 9399);

listEmails().then(res => {
  console.log(res.data.emails);
  process.exit(0);
});
    

ويمكنك إدارة البرنامج.

    node clientTest.js
    
لغة Kotlin Android

أنشئ ملف مصدر، clientTest.kt، وانسخ الرمز التالي.

class MainActivity : ComponentActivity() {
  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    lifecycleScope.launch {
      val connector = MyConnector.instance
      connector.dataConnect.useEmulator() // Remove to connect to production
      try {
        println(connector.listEmails.execute().data.emails)
      } catch (e: Throwable) {
        println("ERROR: $e")
      }
    }
  }
}
    

الإجراء:

  1. شغِّل النشاط.
  2. التحقّق من مخرجات Logcat لنظام التشغيل Android

نشر النموذج الأوّلي المكتمل للإنتاج

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

بمجرد النشر، ستكون خدمة Data Connect جاهزة لمعالجة العمليات من العملاء. سيتم تحديث مثيل Cloud SQL for PostgreSQL بالمخطط والبيانات التي تم إنشاؤها للمرة الأخيرة

(اختياري) تثبيت PostgreSQL محليًا

يتيح لك تثبيت PostgreSQL محليًا ودمجه مع المحاكي إنشاء نموذج أولي في بيئة تطوير محلية بالكامل.

يمكنك تثبيت مثيل جديد من PostgreSQL أو استخدام مثيل حالي.

تثبيت PostgreSQL

قم بتثبيت الإصدار 15.x من PostgreSQL باتباع الإرشادات الخاصة بنظامك الأساسي.

يُرجى ملاحظة إخراج اسم المضيف والمنفذ واسم المستخدم وكلمة المرور والمعلّمات ذات الصلة أثناء تسلسل عملية التثبيت.

للاتصال بمثيل PostgreSQL، يحتاج المحاكي إلى ما يلي:

  • معلمات ضبط الإعداد هذه
  • اسم قاعدة البيانات من dataconnect.yaml وقاعدة بيانات ذات اسم مطابق تم إعدادها في المثيل المحلي.

يُرجى تعديل ".firebaserc" باستخدام سلسلة الربط.

استخدِم تفاصيل إعداد PostgreSQL المحلية، بما في ذلك اسم مستخدم وكلمة مرور PostgreSQL المحليَين، لإضافة سلسلة ربط إلى المفتاح التالي في ملف .firebaserc.

{
  "projects": {},
  ...,
  ...,
  "dataconnectEmulatorConfig": {
    "postgres": {
      "localConnectionString": "postgresql://postgresusername:postgrespassword@localhost:5432?sslmode=disable"
    }}
}

الاتصال بمثيل PostgreSQL المحلي

بعد تنفيذ هذه التهيئة، للاتصال بقاعدة البيانات المحلية:

  1. في VS Code، انقر على رمز Firebase في اللوحة اليمنى لفتح واجهة المستخدم لإضافة رمز Firebase VS.
  2. انقر على زر Connect to Local PostgreSQL.

الخطوات اللاحقة