الواجهة الخلفية والحسابات
الواجهة الخلفية Firebase (قاعدة بيانات + حسابات)
امنح التطبيقات المُنشأة بالذكاء الاصطناعي قاعدة بيانات سحابية وتسجيل دخول للمستخدمين باستخدام مشروع Firebase المجاني الخاص بك
1ما الذي يمنحه هذا لتطبيقك#
عادةً يخزّن تطبيقك المُنشأ البيانات على الهاتف الذي يعمل عليه فقط. تفعيل Firebase يمنح التطبيق قاعدة بيانات سحابية مجانية، فتظهر البيانات نفسها من أي جهاز، و(إن أردت) يمكن للأشخاص التسجيل بالبريد الإلكتروني وكلمة المرور.
إنه BRING-YOUR-OWN - يتواصل التطبيق مع مشروع Firebase المجاني الخاص بك. لا يستضيف AppMint شيئًا ولا يحاسبك على أي إضافات. تلصق إعدادًا واحدًا مرة واحدة؛ ويكتب الذكاء الاصطناعي كل الكود.
لست مضطرًا إلى كتابة أو تصميم أي شيء - لا جداول ولا مخطط ولا SQL. يتولى Firebase وAppMint ذلك انطلاقًا من وصف تطبيقك.
2أنشئ مشروع Firebase (5 دقائق، مجاني)#
الأسهل على الحاسوب:
- افتح console.firebase.google.com وسجّل الدخول بأي حساب Google.
- اضغط 'Add project' ← أعطه أي اسم ← واصل الضغط على 'Continue' ← تخطَّ Google Analytics ← 'Create project'. انتظر نحو 30 ثانية.
- في القائمة اليسرى: Databases & Storage ← Firestore ← 'Create database'.
- اختر موقعًا قريبًا من مستخدميك (لا يمكنك تغييره لاحقًا).
- اختر 'Start in production mode' - وليس 'test mode'. ينتهي وضع الاختبار تلقائيًا بعد 30 يومًا ويتوقف تطبيقك عن العمل بصمت.
- في القائمة اليسرى: Security ← Authentication ← 'Get started' ← تبويب 'Sign-in method':
- فعّل 'Email/Password' (شغّل المفتاح الأول، احفظ).
- فعّل أيضًا 'Anonymous' (مرّر للأسفل، شغّله، احفظ) - مطلوب لتطبيقات الضيوف/لوحات المتصدرين.
هذا كل شيء. لا يوجد مخطط لتصميمه.
3انسخ إعداد الويب الخاص بك#
ما زلت في Firebase Console:
- اضغط ⚙️ الترس (أعلى اليسار) ← 'Project settings'.
- مرّر إلى 'Your apps' ← اضغط أيقونة </> (الويب).
- أعطِ التطبيق أي اسم مستعار ← اضغط 'Register app' (تخطَّ 'Firebase Hosting').
- سترى مقطع كود. انسخ فقط الكائن firebaseConfig - كل شيء من { الافتتاحية إلى } الختامية.
مفتاح API للويب مخصص ليكون عامًا - بياناتك محمية بقواعد الأمان في الخطوة 6، لا بإخفاء المفتاح.
const firebaseConfig = {
apiKey: "AIza...",
authDomain: "my-app.firebaseapp.com",
projectId: "my-app",
storageBucket: "my-app.appspot.com",
messagingSenderId: "123456789",
appId: "1:123:web:abc"
}; ← copy the { ... } part4الصقه في AppMint (مرة واحدة)#
افتح AI Studio ← Settings ← مرّر إلى 'BACKEND - FIREBASE (OPTIONAL)':
- الصق firebaseConfig الذي نسخته في المربع الكبير.
- شغّل مفتاح 'Enable Firebase backend'.
- اضغط 'Save Firebase config'. يجب أن ترى 'Saved Firebase project: <your-project-id>'.
يُخزَّن مشفّرًا على جهازك ويُعاد استخدامه لكل تطبيق تنشئه - تفعل هذا مرة واحدة فقط.
5صِف تطبيقك - والذكاء الاصطناعي يتولى الباقي#
قل فقط ما تريد بلغة بسيطة. يقرر الذكاء الاصطناعي إضافة شاشات تسجيل الدخول أو عدمها بحسب ما تطلبه:
- 'A notes app where each user saves their own notes' ← يبني الذكاء الاصطناعي التسجيل/تسجيل الدخول وملاحظات خاصة.
- 'A global leaderboard for a tap game, no accounts' ← يستخدم الذكاء الاصطناعي تسجيل دخول ضيف صامتًا ونتائج عامة ودون واجهة تسجيل دخول.
- 'A shared bulletin board everyone can post to' ← يستخدم الذكاء الاصطناعي تسجيل دخول الضيف ودون واجهة تسجيل دخول.
إذا كان الجهاز دون اتصال أو الإعداد مفقودًا، يعود التطبيق تلقائيًا إلى التخزين على الهاتف فقط فلا ينهار أبدًا.
6طبّق قواعد الأمان (مطلوب)#
بدون هذه الخطوة، سيحصل التطبيق على أخطاء 'permission denied' عند محاولة القراءة أو الكتابة. يكتب الذكاء الاصطناعي القواعد لك؛ وما عليك إلا لصقها.
- بعد إنشاء تطبيقك، افتح عرض الكود (أو فك ضغط المشروع الذي نزّلته) وابحث عن الملف 'firestore.rules'. اضغط عليه وانسخ كل النص.
- في Firebase Console: Databases & Storage ← Firestore ← تبويب 'Rules' ← اضغط 'Edit rules' ← احذف ما هناك ← الصق قواعد الذكاء الاصطناعي ← اضغط 'Publish'.
افعل هذا مرة واحدة لكل تطبيق. القواعد مصممة لتطبيقك - تتيح للمستخدمين كتابة بياناتهم الخاصة فقط، مع بقاء لوحات المتصدرين قابلة للقراءة علنًا.
7تحقق من أنه يعمل#
فحص سريع بعد تثبيت APK:
- افتح التطبيق على هاتفك ونفّذ إجراءً واحدًا يجب أن يحفظ بيانات (أنشئ ملاحظة، أرسل نتيجة، إلخ).
- ارجع إلى Firebase Console: Databases & Storage ← Firestore ← تبويب 'Data' ← يجب أن ترى مجموعة جديدة (مثل 'notes' أو 'scores') تحتوي البيانات التي أدخلتها للتو.
- Security ← Authentication ← تبويب 'Users' ← إذا كان تطبيقك يستخدم تسجيل الدخول، فيجب أن يظهر حسابك هنا.
إذا لم يظهر شيء: تحقق من الأسباب الثلاثة الأكثر شيوعًا في الخطوة التالية.
8إذا لم يعمل شيء#
الأخطاء الأكثر شيوعًا:
- 'permission-denied' أو لا تُحفظ البيانات ← نسيت الخطوة 6 (نشر القواعد).
- 'auth/operation-not-allowed' عند التسجيل/تسجيل الدخول ← لم تفعّل البريد/كلمة المرور في الخطوة 2.
- 'auth/operation-not-allowed' لتطبيقات الضيوف/لوحات المتصدرين ← لم تفعّل Anonymous في الخطوة 2.
- 'auth/operation-not-allowed' لتسجيل الدخول بـ Google ← لم تفعّل Google ولصق بصمة SHA-256 (راجع خطوة 'Add Google Sign-In' أدناه).
- رُفض الإعداد الملصوق ('Couldn't find a { ... } config object') ← الصق الكتلة { ... } كاملة بما فيها الأقواس المعقوفة، لا الداخل فقط.
طرق تسجيل الدخول المدعومة في التطبيقات المُنشأة: البريد/كلمة المرور، المجهول (ضيف)، Google Sign-In (عبر Credential Manager الأصلي)، والهاتف/SMS (عبر reCAPTCHA). تسجيل الدخول بـ Facebook مدعوم: أدخل Facebook App ID وClient Token في خطوة Integrate بالمعالج (يفتح تسجيل الدخول في تبويب متصفح). تسجيل الدخول بـ Apple/Twitter ما زال غير مدعوم - فهو يتطلب نوافذ OAuth منبثقة يحظرها Google داخل Android WebView.
9أضف Google Sign-In (اختياري)#
يمكن للتطبيقات المُنشأة استخدام Google Sign-In عبر Credential Manager الأصلي في Android - ويعمل داخل WebView (على عكس نوافذ OAuth المنبثقة). إعداد لمرة واحدة لكل تطبيق:
- Firebase Console ← Security ← Authentication ← تبويب 'Sign-in method' ← فعّل 'Google'. احفظ.
- Firebase Console ← ⚙ Project settings ← 'Your apps' ← إذا لم يكن لديك تطبيق Android مسجَّل، فاضغط 'Add app' ← Android ← أدخل اسم حزمتك (الذي ستستخدمه في AppMint).
- ابنِ ملف APK مرة واحدة في AppMint. افتح الملف '<appname>_signkey_info.txt' الذي نُزّل - ستجد في أعلاه بصمتي SHA-1 وSHA-256.
- ارجع إلى Firebase Console ← ⚙ Project settings ← Your apps ← تطبيق Android ← 'Add fingerprint' ← الصق SHA-1، ثم 'Add fingerprint' مرة أخرى لـ SHA-256. اضغط 'Save'. يتحقق Google Sign-In من SHA-1: مع SHA-256 فقط يفشل بخطأ 'No credentials available'. (تفعل هذا مرة واحدة لكل تطبيق - يُستخدم مفتاح التوقيع نفسه لكل بناء مستقبلي.)
- تنشر على Google Play؟ يعيد Play توقيع تطبيقك بمفتاحه الخاص، لذا يكون للتثبيت من Play بصمة مختلفة. Play Console ← تطبيقك ← Test and release ← App integrity ← انسخ SHA-1 وSHA-256 تحت 'App signing key certificate' وأضفهما معًا إلى تطبيق Firebase Android نفسه. إذا تخطيت هذا، يعمل تسجيل الدخول من APK لكنه يفشل لكل من يثبّت من Play.
- Firebase Console ← ⚙ Project settings ← General ← مرّر إلى 'Your apps' ← ابحث عن قسم Web SDK ← انسخ 'Web client ID' (ينتهي بـ .apps.googleusercontent.com).
- افتح إعدادات AppMint ← الصقه في 'GOOGLE SIGN-IN - OAUTH WEB CLIENT ID'. احفظ.
- أعد بناء تطبيقك. يعمل Google Sign-In الآن.
10أضف تسجيل الدخول بالهاتف / SMS (اختياري)#
تستخدم مصادقة الهاتف Firebase Web SDK مع reCAPTCHA (تعمل داخل WebView). يكتب المستخدم رقم هاتفه، ويضغط فحص 'I'm not a robot'، ويتلقى رمز SMS، ثم يدخله.
الإعداد:
- Firebase Console ← Security ← Authentication ← تبويب 'Sign-in method' ← فعّل 'Phone'. احفظ.
- لا حاجة إلى SHA (نستخدم تحقق reCAPTCHA، لا Play Integrity).
- اطلب فقط من الذكاء الاصطناعي تسجيل الدخول بالهاتف في وصف تطبيقك (مثل 'Users sign in with their phone number').
⚠️ الفوترة: يتطلب إرسال رسائل التحقق SMS الحقيقية الآن خطة Blaze (الدفع حسب الاستخدام) - لم تعد خطة Spark المجانية تتضمن حصة SMS مجانية. قم بالترقية في Firebase Console ← ⚙ Project settings ← Usage and billing. في Blaze، يسمح Firebase Authentication بما يصل إلى 3,000 رسالة تحقق SMS يوميًا؛ وتختلف أسعار SMS حسب البلد.
💡 للاختبار دون فوترة أو SMS حقيقية: Authentication ← Settings ← 'Phone numbers for testing' يتيح لك إضافة رقم اختبار ثابت ورمز (لا تُرسل أي رسالة).
11التكلفة - ما الذي تتوقعه#
تغطي خطة Firebase المجانية 'Spark' معظم التطبيقات الهاوية. المجاني يوميًا:
- 50,000 قراءة مستند
- 20,000 عملية كتابة
- 20,000 عملية حذف
- تخزين إجمالي 1 GiB
- 10 GiB / شهر من الشبكة الصادرة
للتوضيح: تطبيق ملاحظات صغير بـ 100 مستخدم نشط يجري نحو 5,000 قراءة يوميًا. وقد تتجاوز لوحة متصدرين للعبة منتشرة 50 ألف قراءة في ساعة.
⚠️ اضبط تنبيه ميزانية: Google Cloud Console ← Billing ← Budgets & alerts ← اضبط 'Alert me at $1'. تبقى بأمان وسيراسلك Firebase بالبريد لحظة تتحول فيها الاستخدامات إلى تكلفة.