قم بإعداد مجال مخصص للارتباطات الديناميكية

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

https://example.com/link-suffix
https://example.com/links/promos/link-suffix
https://links.example.com/link-suffix
https://ex.amp.le/link-suffix

يُطلق على جزء عنوان URL الموجود قبل لاحقة link-suffix اسم بادئة عنوان URL ، ويحتوي على كل من مجال الارتباط الديناميكي المخصص وبادئة المسار. ستحتاج إلى توفير بادئة URL عند إنشاء روابط ديناميكية.

يتطلب إعداد نطاق مخصص إذنًا من المحرر أو المالك في مشروع Firebase الخاص بك.

استخدام مجال الويب الخاص بك للارتباطات الديناميكية

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

على سبيل المثال، إذا كنت تريد إنشاء رابط ديناميكي للمورد https://example.com/my-resource (صفحة ويب، أو رابط عام، أو رابط تطبيق)، فلا يمكنك استخدام https://example.com/ كبادئة عنوان URL للارتباطات الديناميكية، لأن القيام بذلك سيؤدي إلى معاملة https://example.com/my-resource على أنه رابط ديناميكي. بدلاً من ذلك، يجب عليك استخدام بادئة URL مع مجال مختلف أو بادئة مسار مختلفة.

لذلك، لن تعمل الروابط الديناميكية الطويلة التالية (والروابط القصيرة المكافئة) على النحو المنشود لأن عناوين URL المحددة بواسطة معلمة link تبدأ ببادئة عنوان URL للارتباط الديناميكي، https://example.com/ :

 https://example.com/?link=https://example.com/my-resource
 https://example.com/?link=https://example.com/resources/my-resource

لكن الروابط الديناميكية الطويلة التالية (والروابط القصيرة المكافئة) يمكن أن تعمل، لأن بادئات URL لا تتعارض مع عناوين URL link :

 https://link.example.com/?link=https://example.com/my-resource
 https://example.com/links/?link=https://example.com/my-resource
 https://ex.amp.le/?link=https://example.com/my-resource

قم بإعداد مجال مخصص في وحدة تحكم Firebase

يمكنك عادةً إعداد نطاق مخصص بالكامل في وحدة تحكم Firebase. لنفعل ذلك:

  1. إذا لم تقم بإعداد استضافة Firebase لمشروعك، فافتح صفحة الاستضافة لوحدة تحكم Firebase، وانقر فوق البدء ، ثم انقر فوق تعليمات الإعداد. ليس عليك إكمال الخطوات المشار إليها في الوقت الحالي.

  2. افتح صفحة الروابط الديناميكية لوحدة تحكم Firebase.

  3. إذا لم تكن قد استخدمت الارتباطات الديناميكية من قبل، فانقر فوق البدء . بخلاف ذلك، انقر فوق إضافة بادئة URL من القائمة المنسدلة.

    بعد ذلك، أكمل معالج الإعداد، مع تحديد المجال وبادئة المسار اللذين تريد استخدامهما عند المطالبة بذلك.

  4. iOS فقط : في ملف Info.plist الخاص بمشروع Xcode، أنشئ مفتاحًا يسمى FirebaseDynamicLinksCustomDomains وقم بتعيينه على بادئات URL للارتباطات الديناميكية لتطبيقك. على سبيل المثال:

    <key>FirebaseDynamicLinksCustomDomains</key>
    <array>
      <string>https://example.com/link</string>
      <string>https://example.com/promos</string>
    </array>
    

قم بإعداد مجال مخصص يدويًا

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

لنفعل ذلك:

  1. قم بتوصيل المجال الخاص بك باستضافة Firebase إذا لم تكن قد قمت بذلك بالفعل.

    يتضمن إعداد المجال الخاص بك باستخدام Firebase Hosting إنشاء ملف التكوين firebase.json في دليل المشروع المحلي الخاص بك.

  2. قم بالتحديث إلى أحدث إصدار من Firebase CLI (الإصدار 6.5.0 أو الأحدث).

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

    • اضبط appAssociation على AUTO . باستخدام هذا الإعداد، تقوم الاستضافة ديناميكيًا بإنشاء ملفات assetlinks.json و apple-app-site-association عند طلبها.

    • حدد بادئات المسار التي تريد استخدامها للارتباطات الديناميكية عن طريق تعيين قواعد إعادة الكتابة مع تعيين dynamicLinks على true . يتم نقل الطلبات المقدمة إلى هذه المسارات إلى الارتباطات الديناميكية.

      على عكس القواعد التي تعيد كتابة المسارات إلى عناوين URL، لا يمكن أن تحتوي قواعد إعادة كتابة الارتباط الديناميكي على تعبيرات عادية.

      إذا كانت لديك قواعد إعادة كتابة متعددة لموقعك، فاعلم أن الاستضافة تنفذ قاعدة إعادة الكتابة الأولى التي تطابق الطلب.

    على سبيل المثال:

    "hosting": {
      // ...
      "appAssociation": "AUTO",
      "rewrites": [
        {
          "source": "/promos/**",
          "dynamicLinks": true
        },
        {
          "source": "/links/share/**",
          "dynamicLinks": true
        }
      ]
    }
    

    باستخدام التكوين أعلاه، يمكنك إنشاء روابط ديناميكية ببادئات URL مثل الأمثلة التالية:

    https://your-domain/promos/link-suffix
    https://your-domain/links/share/link-suffix
    

    إذا كنت تستخدم هذا المجال فقط للارتباطات الديناميكية، فيمكنك استخدام المسار المصدر لـ /** لإنشاء روابط ديناميكية بدون بادئة المسار:

    {
      "source": "/**",
      "dynamicLinks": true
    }
    

    باستخدام القاعدة المذكورة أعلاه، يمكنك إنشاء روابط ديناميكية مثل المثال التالي:

    https://your-domain/link-suffix

  4. انشر تغييرات تكوين الاستضافة الخاصة بك:

    firebase deploy --only hosting

    (اختياري) يمكنك التحقق من محتوى firebase.json المنشور باستخدام Hosting REST API .

  5. iOS فقط : في ملف Info.plist الخاص بمشروع Xcode، أنشئ مفتاحًا يسمى FirebaseDynamicLinksCustomDomains وقم بتعيينه على بادئات URL للارتباطات الديناميكية لتطبيقك. على سبيل المثال:

    <key>FirebaseDynamicLinksCustomDomains</key>
    <array>
      <string>https://example.com/promos</string>
      <string>https://example.com/links/share</string>
    </array>
    

ترتيب الأولوية للارتباطات الديناميكية والاستضافة

بالنسبة للارتباطات الديناميكية، كن على دراية خاصة باستضافة ترتيب الأولوية .

  • تأكد من أن بادئة عنوان URL للارتباطات الديناميكية الخاصة بك لا تتعارض مع تكوينات الاستضافة ذات الأولوية الأعلى (على سبيل المثال، يكون للمحتوى الثابت المستضاف دائمًا الأولوية على عمليات إعادة الكتابة).
  • ضمن سمة rewrites ، ستلتزم استجابة الاستضافة بالقاعدة المحددة بواسطة الكرة source الأولى التي تلتقط المسار المطلوب .

على سبيل المثال، إذا قمت بإعداد رابط ديناميكي your-domain / source-path / link-suffix ولكن لديك أيضًا محتوى ثابت في your-domain / source-path /index.html ، فإن المحتوى الثابت له الأولوية. سيرى المستخدم النهائي index.html بدلاً من الارتباط الديناميكي. وبالمثل، إذا كان لديك محتوى ثابت في your-domain / source-path / link-suffix ، فسيرى المستخدم النهائي المحتوى الثابت بدلاً من الارتباط الديناميكي.

إذا كنت تريد استخدام نفس العلامة التجارية لكل من الروابط الديناميكية والاستضافة، ففكر في أحد الخيارات التالية لبادئة عنوان URL للارتباطات الديناميكية:

  • قم بتعيين سمة source الخاصة بك لتتطابق مع بادئة المسار. على سبيل المثال، إذا كان لديك مجالًا مخصصًا لـ example.com ، فقد تكون قاعدة إعادة الكتابة الخاصة بك كما يلي:

    // Domain is example.com
    "rewrites": [ {
      "source": "/links/**",  // Dynamic Links start with "https://example.com/links/"
      "dynamicLinks": true
    } ]
    
  • قم بإعداد نطاق فرعي لاستخدامه في الارتباطات الديناميكية، ثم قم بتعيين سمة source الخاصة بك لمطابقة هذا النطاق الفرعي. على سبيل المثال، إذا كان لديك نطاق فرعي من links.example.com ، فقد تكون قاعدة إعادة الكتابة الخاصة بك كما يلي:

    // Domain is links.example.com
    "rewrites": [ {
      "source": "/**",  // Dynamic Links start with "https://links.example.com/"
      "dynamicLinks": true
    } ]