أنشئ APK مجانًا

الواجهة الخلفية والحسابات

الواجهة الخلفية Supabase (اربطها مرة واحدة)

اربط مشروع Supabase المجاني الخاص بك - قاعدة بيانات سحابية وحسابات مستخدمين وتخزين للتطبيقات المولَّدة بالذكاء الاصطناعي

1ما الذي يمنحك إياه ربط Supabase#

افتراضيًا يحتفظ التطبيق المولَّد بالذكاء الاصطناعي ببياناته على الهاتف الذي ثُبّت عليه فقط - وضع 'Offline'. اربط Supabase ويحصل التطبيق نفسه على قاعدة بيانات سحابية حقيقية (Postgres) وحسابات مستخدمين وتخزين ملفات، فتُشارك البيانات بين الأجهزة والمستخدمين.

إنه BRING-YOUR-OWN: يتحدث التطبيق مع مشروع Supabase المجاني الخاص بك. لا يستضيف AppMint شيئًا لك ولا يفرض أي رسوم إضافية على ذلك.

لا تصمم جداول ولا تكتب SQL. يستنتج AppMint المخطط من وصف تطبيقك ويطبّقه ويبقيه متزامنًا في كل بناء.

2ما تحتاجه أولًا#

حساب Supabase مجاني - هذا كل ما تحتاجه. لا تحتاج إلى إنشاء مشروع أولًا؛ يمكن لـ AppMint إنشاء واحد لك أثناء تسجيل الدخول.

ما يستحق معرفته عن الخطة المجانية:

  • مشروعان لكل مؤسسة.
  • تتوقف المشاريع مؤقتًا بعد أسبوع دون زيارات وتستيقظ عند الطلب التالي.

إذا كان لديك مشروع تريد إعادة استخدامه فهذا ممكن أيضًا - يضع AppMint كل تطبيق في مخطط (schema) خاص به داخله، فيمكن لعدة تطبيقات مشاركة مشروع واحد.

في AI Studio، تحت 'WHERE YOUR APP'S DATA LIVES'، اضغط بطاقة 'Supabase' (تظهر 'Tap to connect'). اختر 'Sign in with OAuth'.

يفتح متصفحك Supabase، فتسجل الدخول وتوافق على AppMint، ثم تعود إلى التطبيق تلقائيًا - لا يوجد رمز لنسخه.

الأمر نفسه متاح من ترس الإعدادات ⚙ ← 'BACKEND - SUPABASE' ← '🔗 Connect Supabase (OAuth)'.

4اختر المشروع أو أنشئه#

بعد الموافقة مباشرة يعرض AppMint 'Pick a Supabase project':

  • اختر مشروعًا موجودًا، أو
  • اضغط '➕ Create new project…' ← اختر المؤسسة ← سمِّه (مثل appmint-prod) ← اختر منطقة قريبة من مستخدميك (لا يمكن تغييرها لاحقًا) ← 'Create'. يستغرق التجهيز 1-2 دقيقة.

عندما ينشئ AppMint المشروع يعرض كلمة مرور قاعدة البيانات مرة واحدة فقط، لأن Supabase تحتفظ بتجزئتها فقط. انسخها في مكان آمن قبل إغلاق ذلك الحوار - لا تحتاجها لـ AppMint، لكنك ستحتاجها لربط أي أداة أخرى.

وصلت إلى حد الخطة المجانية ('Free tier allows 2 projects per organization')؟ اختر مشروعًا موجودًا بدلًا من ذلك، أو قم بالترقية من لوحة Supabase.

5أو اربط يدويًا (استضافة ذاتية / بدون OAuth)#

الإعدادات ← 'BACKEND - SUPABASE' ← 'MANUAL / SELF-HOSTED':

  1. Project URL - من لوحة Supabase، Project Settings ← API. يبدو هكذا https://YOUR-PROJECT-REF.supabase.co
  2. مفتاح anon - المفتاح العام من الصفحة نفسها؛ يبدأ بـ 'eyJ'. هذا المفتاح مصمم ليكون عامًا: ما يحمي بياناتك هو Row-Level Security، وليس إخفاء المفتاح.
  3. فعّل 'Enable Supabase backend for generated apps' واضغط 'Save Supabase config'.

فعّل 'Self-hosted instance' إذا كنت تشغّل Supabase بنفسك. لا يمكن للوضع اليدوي نشر المخطط تلقائيًا على Cloud - أضف Personal Access Token (الخطوة التالية) إذا أردت ذلك.

Project URL   https://abcdefghijkl.supabase.co
anon key      eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

6ما يفعله AppMint في كل بناء#

بعد الربط، يقوم كل إنشاء بعمل الواجهة الخلفية نيابةً عنك:

  • يطبّق المخطط الذي كتبه الذكاء الاصطناعي (الجداول والفهارس وسياسات Row-Level-Security).
  • يشغّل بيانات البذر (seed data) إن احتاجها التطبيق.
  • ينشئ حاويات Storage للرفع والصور.
  • ينشر دوال edge (المدفوعات والبريد وwebhooks) ويتخطى ما لم يتغير.
  • يضبط مزودي المصادقة وSite URL.
  • يشغّل بوابة أمان وبوابة ترحيل (migration)، ثم يعيد أنواع TypeScript إلى المشروع.

تعيش جداول تطبيقك في مخطط خاص بها باسم appmint_<your app>. حسابات المستخدمين مشتركة بين كل تطبيقات المشروع، فيعمل تسجيل واحد في كل مكان.

7تحقق من أنه نجح#

فحصان سريعان:

  • تظهر بطاقة 'Supabase' في AI Studio الآن بحالة 'Connected'، وتعرض الإعدادات معرّف المشروع.
  • الإعدادات ← 'DIAGNOSTICS' ← '⚡ Test Supabase connection' - يبلّغ بالنجاح أو بالخطأ الدقيق.

بعد إنشاء تطبيق، افتح لوحة Supabase ← Table Editor وبدّل محدد المخطط من 'public' إلى appmint_<your app> لترى الجداول التي أنشأها AppMint.

8أي المفاتيح آمنة وأين#

  • مفتاح anon - آمن داخل التطبيقات المولَّدة. تحدد Row-Level Security ما يمكن لكل مستخدم مسجّل قراءته أو كتابته.
  • مفتاح service_role - لا يوضع أبدًا في تطبيق. يخزّنه AppMint مشفّرًا على هذا الجهاز فقط، ويستخدمه لحاويات Storage وتطبيق المخطط في الاستضافة الذاتية.
  • Personal Access Token (sbp_…) - على الجهاز فقط أيضًا؛ يتيح لـ AppMint نشر المخطط ودوال edge على Supabase Cloud تلقائيًا. أنشئ واحدًا من supabase.com/dashboard/account/tokens بنطاق قراءة وكتابة للمشروع.

كلا المفتاحين الاختياريين في الإعدادات ← 'ADVANCED - DEPLOY CREDENTIALS'.

9يفتح: تسجيل الدخول عبر Google وStripe وRemote Update#

تحتاج عدة ميزات إلى ربط Supabase أولًا، وستوجهك إلى هنا حتى يتم ذلك:

  • 'Continue with Google' في التطبيقات المولَّدة.
  • مدفوعات Stripe (تعمل عملية الدفع في دالة edge داخل مشروعك).
  • Remote Update - التحديثات التي تدفعها إلى التطبيقات المثبتة تُخزَّن في مشروع Supabase الخاص بك.

اربط مرة واحدة وتصبح الثلاثة متاحة؛ لا تكرر ذلك لكل تطبيق.

10إزالة الواجهة الخلفية لتطبيق#

الإعدادات ← 'DANGER ZONE' (تظهر عند الربط):

  • '📋 List & delete project tables' - تصفّح كل جدول أنشأه AppMint واحذف ما لم تعد بحاجة إليه.
  • '🗑 Delete this whole app backend' - يزيل مخطط ذلك التطبيق، واختياريًا حاويات Storage ودوال edge الخاصة به. تكتب DELETE للتأكيد.

اختر 'Data only' إذا لم تكن متأكدًا: الحاويات ودوال edge مشتركة في المشروع كله وليست لكل تطبيق. حسابات المستخدمين لا تُمَس أبدًا.

لإلغاء الربط بالكامل: الإعدادات ← 'ONE-TAP OAUTH' ← '🔒 Disconnect Supabase OAuth'.

11إذا لم يعمل شيء#

  • 'Not connected' بعد تسجيل الدخول ← اكتمل OAuth لكن لم يُربط مشروع بعد. الإعدادات ← 'Choose project'.
  • تحذير بأن مفتاح anon لم يُجلب تلقائيًا ← موافقة Supabase OAuth لا تتضمن نطاق Secrets:Read. انسخ مفتاح anon من Project Settings ← API والصقه في الإعدادات (الخطوة 5).
  • 'Could not list your Supabase organizations' عند إنشاء مشروع ← أنشئ المشروع من لوحة Supabase بدلًا من ذلك، ثم عد واخترْه.
  • 'Connect Supabase first' في Remote Update أو Stripe ← هذا الفصل، الخطوة 3.
  • فشل قراءة/كتابة البيانات في تطبيق مولَّد ← شغّل '⚡ Test Supabase connection' أولًا؛ فإن نجح، اطلب من الذكاء الاصطناعي إصلاح سياسة Row-Level-Security للجدول الذي يسميه.

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

تمت المراجعة مقابل الدليل المُرفق بتاريخ 2026-10-22.