بدء استخدام Firebase SQL Connect على iOS

في هذا التشغيل السريع، ستنشئ قاعدة بيانات صغيرة نموذجية وتنشرها وتصل إليها من تطبيق iOS.

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

لإكمال هذا التشغيل السريع، ستحتاج إلى ما يلي:

  • بيئة مثبَّت عليها الأدوات التالية:
    • إصدار حديث من Xcode.
    • واجهة سطر الأوامر (CLI) في Firebase إذا كان لديك مدير حزم Node (NPM) مثبَّتًا، شغِّل ما يلي:
      npm install -g firebase-tools@latest
      بخلاف ذلك، اطّلِع على المستندات للحصول على تعليمات التثبيت.
  • حساب Google

برنامج تعليمي

برنامج تعليمي

1. إنشاء مشروع جديد على Xcode

في Xcode، أنشئ مشروعًا جديدًا باستخدام نموذج التطبيق.

سمِّ المشروع التشغيل السريع باستخدام معرّف الحزمة com.example.Quickstart.

مربّع حوار إنشاء مشروع جديد في Xcode

أنشئ المشروع في مجلد فارغ، مثل ~/qs-ios. سينشئ Xcode مجلدًا باسم ~/qs-ios/Quickstart يحتوي على ملفات مشروعك.

2. إعداد مشروع Firebase

انتقِل إلى دليل مشروع Xcode وأعِدّ مشروع Firebase فيه.

cd ~/qs-ios
firebase login --reauth
firebase init dataconnect

عند المطالبة، اختَر الخيارات التالية:

  • إنشاء مشروع Firebase جديد.
  • عدم إنشاء مخطط باستخدام Gemini (في هذا البرنامج التعليمي، ستستخدم نموذجًا من المخططات الجاهزة )
  • توفير قاعدة بيانات ومثيل Cloud SQL لفترة تجريبية مجانية

اقبل القيم التلقائية لجميع الطلبات الأخرى.

بعد ذلك، سجِّل تطبيق iOS في مشروع Firebase.

firebase apps:create --bundle-id com.example.Quickstart ios ios-quickstart

عندما يُطلب منك تحديد رقم تعريف في App Store، اضغط على مفتاح Enter لتخطّي الخطوة.

firebase apps:sdkconfig ios -o Quickstart/GoogleService-Info.plist

في Xcode، اختَر ملف > إضافة ملفات إلى "التشغيل السريع" واختَر الملف GoogleService-Info.plist.

3. مراجعة أمثلة تعريفات GraphQL

في SQL Connect، يمكنك تحديد جميع مخططات قاعدة البيانات والعمليات باستخدام GraphQL. عند إعداد مشروعك، أنشأت واجهة سطر الأوامر (CLI) في Firebase بعض التعريفات النموذجية لمساعدتك في البدء.

dataconnect/schema/schema.gql (مقتطف)
type Movie @table {
  title: String!
  imageUrl: String!
  genre: String
}

type MovieMetadata @table {
  movie: Movie! @unique
  rating: Float
  releaseYear: Int
  description: String
}
dataconnect/example/queries.gql (مقتطف)
query ListMovies @auth(level: PUBLIC) {
  movies {
    id
    title
    imageUrl
    genre
  }
}

4. نشر المخططات والعمليات

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

firebase deploy --only dataconnect

5. تعبئة قاعدة البيانات ببيانات نموذجية

ستمنحك بيانات المحتوى الأساسي هذه محتوى يمكنك الاطّلاع عليه عند اختبار نموذج التطبيق. يُرجى العِلم أنّه في هذه الخطوة، أنت تنفّذ GraphQL عشوائيًا، وهو ما يُسمح به للمهام الإدارية.

firebase dataconnect:execute dataconnect/seed_data.gql

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

يستخدم هذا الأمر تعريفات GraphQL لإنشاء حزمة تطوير برامج (SDK) لعميل iOS مخصّصة لقاعدة بياناتك. يمكنك استخدام هذه المكتبة في تطبيق العميل لتنفيذ جميع عمليات قاعدة البيانات.

يمكنك إنشاء مكتبات لمنصات متعددة، بما في ذلك Kotlin لنظام Android وJavaScript للويب وFlutter، عن طريق إضافة تعريفات إلى connector.yaml.

firebase dataconnect:sdk:generate
حزمة تطوير برامج (SDK) لعميل iOS تم إنشاؤها تلقائيًا (مقتطف)
public class ListMoviesQuery {

  // ...

  @MainActor
  public func execute(
    fetchPolicy: QueryFetchPolicy = .preferCache,
  ) async throws -> OperationResult<ListMoviesQuery.Data> {
    var variables = ListMoviesQuery.Variables()

    let ref = dataConnect.query(
      name: "ListMovies", variables: variables, resultsDataType: ListMoviesQuery.Data.self,
      publisher: .observableMacro)

    let refCast = ref as! QueryRefObservation<ListMoviesQuery.Data, ListMoviesQuery.Variables>
    return try await refCast.execute(fetchPolicy: fetchPolicy)
  }
}

7. إضافة تبعيات Firebase إلى مشروع Xcode

أضِف المكتبة التي تم إنشاؤها إلى مشروعك باستخدام Swift Package Manager. عند إضافة المكتبة التي تم إنشاؤها، ستتضمّن بشكل غير مباشر مكتبات Firebase الأساسية ومكتبة Firebase SQL Connect.

في شريط التنقّل في Xcode، اختَر ملف > إضافة موارد الاعتمادية للحزمة > إضافة محلية، ثم اختَر المجلد الذي يحتوي على المكتبة التي تم إنشاؤها، FirebaseDataConnectGenerated/DataConnectGenerated/. سيحتوي المجلد الصحيح على ملف باسم Package.swift.

8. كتابة نموذج لعميل iOS

استبدِل محتوى Quickstart/QuickstartApp.swift بهذا التطبيق البسيط على iOS.

يُرجى العِلم أنّ التطبيق يُكمل عملية الوصول اللازمة إلى قاعدة البيانات باستخدام دالة من حزمة تطوير البرامج (SDK) التي تم إنشاؤها.

import SwiftUI
import FirebaseCore
import FirebaseDataConnect
import DataConnectGenerated

@main
struct QuickstartApp: App {
  init() {
    FirebaseApp.configure()
  }
  var body: some Scene {
    WindowGroup {
      ListMovieView()
    }
  }
}

struct ListMovieView: View {
  @State private var moviesData: ListMoviesQuery.Data?

  var body: some View {
    VStack {
      ForEach(moviesData?.movies ?? []) { movie in
        Text(movie.title)
      }
    }
    .task {
      let result = try? await DataConnect.exampleConnector
          .listMoviesQuery.execute()
      self.moviesData = result?.data
    }
  }
}

9. جرّب التطبيق

من Xcode، شغِّل التطبيق النموذجي للاطّلاع عليه أثناء العمل.

الخطوات التالية

تجربة إضافة SQL Connect إلى VS Code

عند التطوير باستخدام SQL Connect، ننصحك بشدة باستخدام إضافة SQL Connect إلى VS Code. حتى إذا كنت لا تستخدم Visual Studio Code كبيئة تطوير أساسية ، توفّر الإضافة عدة ميزات تجعل تطوير المخططات والعمليات أكثر ملاءمة:

  • خادم لغة GraphQL يوفّر ميزة التحقّق من البنية واقتراحات الإكمال التلقائي الخاصة بـ SQL Connect
  • أزرار CodeLens متوافقة مع الرمز البرمجي تتيح لك قراءة البيانات وكتابتها من ملفات تعريف المخطط تعريفات وتنفيذ طلبات البحث وعمليات التعديل من تعريفات العمليات
  • مزامنة حزم تطوير البرامج (SDK) التي تم إنشاؤها تلقائيًا مع تعريفات GraphQL
  • إعداد مبسّط لمحاكي محلي
  • نشر مبسّط للإصدار العلني

استخدام محاكي SQL Connect للتطوير المحلي

على الرغم من أنّ هذا البرنامج التعليمي أوضح لك كيفية نشر SQL Connect مخططات وعمليات مباشرةً في الإصدار العلني، من المحتمل ألا تريد إجراء تغييرات على قاعدة بيانات الإصدار العلني أثناء تطوير تطبيقك بشكل نشط. بدلاً من ذلك، يمكنك إعداد SQL Connect المحاكي وإجراء أعمال التطوير عليه بدلاً من الإصدار العلني. يُعدّ المحاكي مثيلاً محليًا من PGlite يتصرف بشكل مشابه لمثيل PostgreSQL نشط على Cloud SQL.

التعرّف على كيفية كتابة المخططات و العمليات لتطبيقك

عند تطوير التطبيقات باستخدام SQL Connect، يُعدّ تصميم المخططات والعمليات من أولى مهام التطوير وأهمها التي ستكملها.

  • Gemini في Firebase وحدة التحكم هو أداة مستندة إلى الذكاء الاصطناعي يمكنها إنشاء مخططات SQL Connect من وصف لتطبيقك بلغة طبيعية. يمكن أن تساعدك هذه الأداة في البدء بسرعة كبيرة، خاصةً إذا لم يسبق لك العمل مع قواعد البيانات العلائقية.
  • بدلاً من ذلك، يمكنك كتابة مخططات قاعدة البيانات وطلبات البحث وعمليات التعديل مباشرةً باستخدام GraphQL. ابدأ بالإرشادات الواردة في تصميم مخططاتSQL Connect, ثم انتقِل إلى الصفحات التالية للتعرّف على كيفية كتابة العمليات.

التعرّف على كيفية الحصول على آخر المعلومات من SQL Connect في الوقت الفعلي

يمكنك استخدام SQL Connect لكتابة تطبيقات عميل تتفاعل مع البيانات المتغيرة في الوقت الفعلي. اطّلِع على الحصول على آخر المعلومات من SQL Connect في الوقت الفعلي.