الترحيل من الروابط الديناميكية إلى روابط التطبيقات & الروابط العالمية

يركز دليل الترحيل هذا على استخدام روابط التطبيقات والارتباطات العامة ، واستخدام استضافة Firebase بشكل اختياري لاستضافة ملفات اقتران موقع التطبيق.

يحل هذا الترحيل محل ميزات Firebase Dynamic Links التالية:

ميزة روابط Firebase الديناميكية روابط التطبيق / الروابط العالمية
قم بتوجيه المستخدمين إلى المتجر الصحيح لأجهزتهم بنقرة واحدة على الرابط
تزويد المستخدمين بمواصلة الرحلة بعد تنزيل تطبيقك وتثبيته باستخدام رابط عميق مؤجل
تزويد المستخدمين بتجربة سياقية باستخدام المحتوى المرتبط بعمق في تطبيقك (عند تثبيته بالفعل)
توفير البيانات التحليلية المتعلقة بأحداث النقر على الرابط الديناميكي
توفير القدرة على إنشاء عناوين URL للروابط القصيرة

إذا كنت لا تزال بحاجة إلى ميزات Firebase Dynamic Link الأخرى للترحيل غير المدعومة في هذا الدليل، فراجع سيناريوهات الترحيل الأخرى في وثائق الأسئلة المتداولة حول إهمال الارتباطات الديناميكية .

لنفترض أن لديك رابط Firebase الديناميكي الذي يبدو كما يلي:

مثال الارتباط الديناميكي
اسم الرابط مرحبًا بك في موقع example.com
رابط عميق https://example.web.app/welcome
الروبوت التطبيق com.example.android
تطبيق أبل com.example.ios
رابط ديناميكي طويل https://example.page.link/?link=https://example.web.app/welcome&apn=com.example.android&isi=123456789&ibi=com.example.iuos
رابط ديناميكي قصير https://example.page.link/m9Mm

الهدف من دليل الترحيل هذا هو استبدال روابط Firebase الديناميكية مثل هذا:

https://example.page.link/m9Mm

باستخدام رابط التطبيق / الارتباط العام للروابط العميقة التي تبدو كما يلي:

https:// your-project-domain .web.app/welcome

لاحظ أن الرابط العميق لـ App Link / Universal Link سيوفر للمستخدمين ما يلي:

  • سيؤدي الرابط العميق الذي يمكنهم النقر عليه إلى فتح تطبيقك عند تثبيته بالفعل
  • استمرار لرحلة المستخدم الخاصة به للانتقال إلى جزء معين من تطبيقك عند فتحه

ومع ذلك، لن يوفر الرابط العميق لرابط التطبيق/الرابط العام السلوكيات التالية لمستخدميك (وهو ما فعلته روابط Firebase الديناميكية سابقًا):

  • توجيه المستخدمين إلى المتجر الصحيح لأجهزتهم لتنزيل تطبيقك وتثبيته
  • توفير استمرارية لرحلة المستخدم بعد تنزيل التطبيق وتثبيته وفتحه لأول مرة

لاحظ الاختلافات في سلوك ووظائف روابط التطبيقات/الارتباطات العامة هذه مقارنةً بروابط Firebase الديناميكية المذكورة في الجدول أعلاه.

قبل ان تبدأ

تستخدم Firebase Dynamic Links روابط التطبيقات (على Android) والارتباطات العامة (على iOS) في التنفيذ الأساسي الخاص بها من أجل توفير وظيفة الارتباط العميق بعد تثبيت تطبيقك بالفعل.

يتناول هذا الدليل كيفية إنشاء روابط التطبيقات والروابط العامة الخاصة بك باستخدام استضافة Firebase لاستبدال هذا الجزء من الوظائف التي توفرها الروابط الديناميكية لـ Firebase أثناء ترحيل روابط Firebase الديناميكية إلى حل ترحيل روابط التطبيقات / الروابط العامة الجديد.

ستحتاج إلى المعلومات التالية لإكمال عملية الترحيل:

  • روابط Firebase الديناميكية التي تنوي ترحيلها
  • معلمات URL للرابط العميق المضمنة في الروابط الديناميكية الخاصة بك
  • النطاق الذي تخطط لاستخدامه لاستبدال نطاق Firebase Dynamic Links السابق (إن أمكن)

يمكنك استخدام دليل تصدير بيانات تعريف الارتباطات الديناميكية لتصدير بيانات تعريف الارتباط الموجودة لديك والحصول على المعلومات المذكورة أعلاه.

نظرة عامة على خطوات الترحيل

  1. قم بتوفير مجال جديد (إذا لم يكن لديك بالفعل نطاق تريد استخدامه) لاستضافة ملفات تكوين App Link / Universal Link باستخدام Firebase Hosting.

  2. قم بإنشاء واستضافة ملفات تكوين App Link / Universal Link على مجال الاستضافة الخاص بك.

  3. قم بإنشاء روابط تطبيقات جديدة / روابط عامة تتوافق مع مخطط الارتباط العميق المستخدم في روابط Firebase الديناميكية.

  4. قم بتحديث تطبيقات Android / iOS ورمز التطبيق الخاص بك لتلقي الروابط العميقة.

  5. اختبار روابط التطبيقات/تكاملات الروابط العامة.

  6. استبدل روابط Firebase الديناميكية المنشورة أو المشتركة بروابط التطبيقات والروابط العامة.

ستكون الخطوة الأولى مشتركة بين تدفقات ترحيل روابط التطبيقات أو الارتباط العالمي. سيختلف الباقي اعتمادًا على النظام الأساسي، لذا انتقل إلى قسم الدليل أدناه اعتمادًا على النظام الأساسي الذي ترغب في ترحيله أولاً.

اختر المجال

الخطوة الأولى هي اختيار المجال الذي ترغب في استخدامه لروابط التطبيقات/الروابط العالمية. سيكون هذا هو المجال الذي سيتم استخدامه للروابط الجديدة التي ستشاركها مع المستخدمين.

إذا كنت تستخدم استضافة Firebase ، فسيتم توفير النطاقات الفرعية للمشروع بالتنسيق your-project-domain .web.app أو your-project-domain .firebaseapp.com تلقائيًا دون أي تكلفة. يمكنك اختياريًا استخدام نطاق مخصص مع أو بدون استضافة Firebase لاستضافة ملفات تكوين App Link / Universal Link أيضًا.

قم بإعداد استضافة Firebase

بعد ذلك، ستحتاج إلى إعداد مثيل Firebase Hosting وتكوينه .

بحلول الوقت الذي تنتهي فيه من إعداد مثيل استضافة Firebase، سيكون لديك نطاق مشابه لـ your-project-domain .web.app `، أو نطاق مخصص إذا كنت تفضل ذلك.

لاستخدام روابط التطبيقات، يجب عليك استضافة ملف تكوين يساعد في إنشاء ارتباط آمن بين المجال المستخدم في روابطك وتطبيقك. بالنسبة لروابط التطبيقات، هذا هو ملف assetlinks.json .

خطوات إنشاء واستضافة ملف astlinks.json

يتيح لنا ملف assetlinks.json تقديم قائمة بالتطبيقات المعتمدة التي يمكنها التعامل مع محتويات نطاق الويب الذي سنستخدمه لروابط التطبيقات الخاصة بنا. يجب استضافة ملف astlinks.json نفسه في جذر نطاق الويب ضمن المسار: /.well-known .

اتبع الخطوات أدناه لإكمال هذا التكوين:

  1. قم بإنشاء المجلد .well-known ضمن المجلد العام في الدليل الجذر لاستضافة Firebase.

  2. قم بإنشاء ملف باسم assetlinks.json ضمن المجلد .well-known .

  3. انسخ المحتوى التالي إلى ملف Assetlinks.json الخاص بك، مع ملاحظة معنى كل حقل أدناه:

    [{
      "relation": ["delegate_permission/common.handle_all_urls"],
      "target": {
        "namespace": "android_app",
        "package_name": "com.example.android",
        "sha256_cert_fingerprints":
          ["01:23:45:67:89:AB:CD:EF:01:23:45:67:89:AB:CD:EF:01:23:45:67:89:AB:CD:EF:01:23:45:67:89:AB:CD:EF"]
      }
    }]
    
    • namespace - تشير إلى اسم التطبيق الذي تريد تقديمه
    • package_name - يشير إلى معرف التطبيق المعلن في ملف build.gradle الخاص بالتطبيق
    • sha256_cert_fingerprints - يشير إلى بصمة SHA256 لملف تخزين المفاتيح الذي تستخدمه لتوقيع التطبيق.

    يمكنك استخدام ملف debug.keystore الذي يستخدمه Android Studio لإنشاء سجل sha256_cert_fingerprints لأغراض تصحيح الأخطاء. يمكنك العثور على الملف على /Users/<username>/.android/debug.keystore على نظامي التشغيل Mac وLinux و C:\Users\<username>\.android\debug.keystore على نظام التشغيل Windows.

    من مخزن المفاتيح هذا، يمكنك جلب قيمة SHA256 باستخدام أداة المفاتيح.

    راجع هذا القسم من وثائق روابط التطبيقات للحصول على مزيد من الإرشادات حول إكمال هذه الخطوة.

    وبدلاً من ذلك، يمكنك أيضًا استخدام App Links Assistant في Android Studio لإنشاء محتويات ملف astlinks.json وتهيئة تطبيقك للتعامل مع روابط التطبيقات.

  4. قم بتحديث ملف firebase.json الخاص بك لفهرسة الملف للاستضافة.

    "headers": [
      {
        "source": "/.well-known/assetlinks.json",
        "headers": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ]
      }
    ]
    
  5. الآن بعد أن أصبح لدينا ملف Assetlinks.json في مكانه الصحيح، قم بتشغيل firebase deploy لاستضافة التغييرات.

    لاحظ أنك ستحتاج إلى تثبيت Firebase CLI لتشغيل أمر النشر أعلاه.

    firebase deploy --only hosting
    
  6. تحقق من ملف assetlinks.json بالانتقال إلى https:// your-project-domain .web.app/.well-known/assetlinks.json

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

على سبيل المثال، لنفترض أن لديك رابط Firebase الديناميكي التالي:

مثال الارتباط الديناميكي
اسم الرابط مرحبًا بك في موقع example.com
رابط عميق https://example.web.app/welcome
الروبوت التطبيق com.example.android
تطبيق أبل com.example.ios
رابط ديناميكي طويل https://example.page.link/?link=https://example.web.app/welcome&apn=com.example.android&isi=123456789&ibi=com.example.iuos
رابط ديناميكي قصير https://example.page.link/m9Mm

في هذه الحالة، يمكنك استخراج معلمة الرابط العميق - على سبيل المثال https://example.web.app/welcome وستستخدمها الآن كمعلمة رابط التطبيق لتطبيقك.

ستحتاج إلى تكرار هذه العملية لكل رابط Firebase ديناميكي ترغب في الترحيل إليه باستخدام روابط التطبيقات / الروابط العامة، وتكرار مخطط الارتباط العميق الذي استخدمته.

على سبيل المثال، يرجى الاطلاع على المجموعة التالية من الروابط المختصرة لـ Firebase Dynamic Links ومعلمات الارتباط العميق وقيم الارتباط العميق المُرحَّلة:

رابط قصير معلمة الارتباط العميق تم ترحيل الرابط العميق
yourapp.page.link/welcome https://example.com/welcome yourapp.web.app/welcome
yourapp.page.link/c7sn https://example.com/main/?p=23&t=1 yourapp.web.app/main/?p=23&t=1
yourapp.page.link/social https://example.com/friendinvite/?add=1 yourapp.web.app/friendinvite/?add=1

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

الخطوة التالية بعد تحديد المجال واختيار مخطط الارتباط العميق وترحيل روابط Firebase الديناميكية إلى روابط التطبيقات هي تحديث تطبيق Android ورمز التطبيق لتلقي الروابط العميقة الجديدة.

نوصي باتباع وثائق روابط التطبيقات الكاملة هنا أو بدلاً من ذلك دليل Android Studio حول تكوين تطبيقك للتعامل مع الروابط العميقة، ولكن الخطوات الرئيسية تتضمن:

  1. تحديد الأنشطة التي يجب أن تتعامل مع الروابط العميقة المعنية
  2. إضافة مرشح النوايا لتلك الأنشطة في ملف AndroidManifest.xml الخاص بك
  3. استلام الرابط العميق في رمز تطبيق أنشطتك

لنفترض أنك تريد استخدام MainActivity الخاص بك للتعامل مع بعض الروابط العميقة الخاصة بك. للقيام بذلك، ستحتاج إلى إضافة Intent Filter التالي إلى MainActivity في ملف AndroidManifest.xml الخاص بك:

<activity android:name=".MainActivity"
   android:exported="true">
   <intent-filter>
       <action android:name="android.intent.action.MAIN" />
       <category android:name="android.intent.category.LAUNCHER" />
   </intent-filter>
   <intent-filter android:autoVerify="true">
       <action android:name="android.intent.action.VIEW" />
       <category android:name="android.intent.category.DEFAULT" />
       <category android:name="android.intent.category.BROWSABLE" />
       <data android:host="example.web.app" android:scheme="http"
           android:pathPrefix="/welcome" />
       <data android:host="example.web.app" android:scheme="https"
           android:pathPrefix="/welcome" />
   </intent-filter>
</activity>

في هذه الخطوة، أنت تحدد أن MainActivity هو الوجهة للتعامل مع الروابط العميقة من المجال wxample.web.app والذي يتضمن بادئة المسار /welcome. لاحظ أنك ستحتاج أيضًا إلى تحديد السمة android:autoVerify="true"، والتي تسمح لك بتعيين تطبيقك باعتباره المعالج الافتراضي لهذا النوع المحدد من الارتباط.

أخيرًا، ستحتاج إلى إضافة الكود في MainActivity الخاص بك لاسترداد بيانات الارتباط العميق واستخدام ذلك لتعزيز تجربة الارتباط العميق في تطبيقك. يشبه هذا المنطق الذي ربما قمت بترميزه بالفعل في تطبيقك عند التكامل مع Firebase Dynamic Links.

override fun onCreate(savedInstanceState: Bundle?) {
  super.onCreate(savedInstanceState)
  setContentView(R.layout.main)

  val  data: Uri? = intent?.data

  val toast = Toast.makeText(this, data, duration)
  toast.show()
}

يمكنك اختبار روابط التطبيقات التي أنشأتها للتو إما عن طريق تشغيل تطبيقك على جهاز فعلي أو في محاكي Android .

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

بدلاً من ذلك، يمكنك أيضًا اختبار تكامل روابط التطبيقات باستخدام App Links Assistant في Android Studio، أو استخدام الأمر التالي لعنوان URL لرابط التطبيق الذي قمت بتكوينه للتأكد من أنه يقوم بتشغيل النشاط المطابق بشكل صحيح:

adb shell am start -a android.intent.action.VIEW -d <your_deep_link_url>

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

سيختلف إكمال هذه الخطوة اعتمادًا على مكان وكيفية نشر روابط Firebase الديناميكية الخاصة بك، ولكن لمساعدتك في تتبع الروابط الموجودة، يمكنك تصدير بيانات تعريف Firebase Dynamic Link الموجودة لديك. راجع دليل تصدير البيانات التعريفية للارتباطات الديناميكية .

لاستخدام الروابط العامة، يجب عليك استضافة ملف تكوين يساعد في إنشاء ارتباط آمن بين النطاق المستخدم في الروابط الخاصة بك وتطبيقك. بالنسبة للارتباطات العامة، هذا هو ملف apple-app-site-association (المعروف أيضًا باسم ملف AASA).

خطوات إنشاء واستضافة ملف apple-app-site-association

يتيح لنا ملف AASA تقديم قائمة بالتطبيقات المعتمدة التي يمكنها التعامل مع محتويات نطاق الويب الذي سنستخدمه للارتباطات العامة الخاصة بنا. يجب استضافة ملف AASA نفسه في جذر نطاق الويب ضمن المسار: /.well-known.

اتبع الخطوات أدناه لإكمال هذا التكوين:

  1. قم بإنشاء المجلد " .well-known " ضمن المجلد العام في الدليل الجذر لاستضافة Firebase.

  2. قم بإنشاء ملف باسم " apple-app-site-association " ضمن المجلد ".well-known".

  3. انسخ المحتوى التالي إلى ملف apple-app-site-association الخاص بك، مع ملاحظة معنى كل حقل أدناه:

    {
      "applinks": {
        "apps": [],
        "details": [
          {
            "appId": "$TEAM_ID.com.firebase.UniversalLinks",
            "paths": [
              "NOT /_/*",
              "/*"
            ]
          }
        ]
      }
    }
    
    • $TEAM_ID.BundleId - اسم التطبيق المؤهل بالكامل والمصرح له بالتعامل مع الروابط
  4. قم بتحديث ملف firebase.json الخاص بك لفهرسة الملف للاستضافة.

    "headers": [
      {
        "source": "/.well-known/apple-app-site-association",
        "headers": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ]
      }
    ]
    
  5. الآن بعد أن أصبح لدينا ملف AASA، قم بنشر Firebase لاستضافة التغييرات.

  6. تحقق من ملف AASA بالانتقال إلى https:// your-project-domain .web.app/.well-known/app-app-site-association

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

على سبيل المثال، لنفترض أن لديك رابط Firebase الديناميكي التالي:

مثال الارتباط الديناميكي
اسم الرابط مرحبًا بك في موقع example.com
رابط عميق https://example.web.app/welcome
الروبوت التطبيق com.example.android
تطبيق أبل com.example.ios
رابط ديناميكي طويل https://example.page.link/?link=https://example.web.app/welcome&apn=com.example.android&isi=123456789&ibi=com.example.iuos
رابط ديناميكي قصير https://example.page.link/m9Mm

في هذه الحالة، يمكنك استخراج معلمة الرابط العميق - iehttps://example.web.app/welcome وستستخدمها الآن كمعلمة Universal Link لتطبيقك.

ستحتاج إلى تكرار هذه العملية لكل رابط Firebase ديناميكي ترغب في الترحيل إليه باستخدام روابط التطبيقات / الروابط العامة، وتكرار مخطط الارتباط العميق الذي استخدمته.

على سبيل المثال، يرجى الاطلاع على المجموعة التالية من الروابط المختصرة لـ Firebase Dynamic Links ومعلمات الارتباط العميق وقيم الارتباط العميق المُرحَّلة:

رابط قصير معلمة الارتباط العميق تم ترحيل الرابط العميق
yourapp.page.link/welcome https://example.com/welcome yourapp.web.app/welcome
yourapp.page.link/c7sn https://example.com/main/?p=23&t=1 yourapp.web.app/main/?p=23&t=1
yourapp.page.link/social https://example.com/friendinvite/?add=1 yourapp.web.app/friendinvite/?add=1

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

الخطوة التالية بعد تحديد المجال واختيار مخطط الارتباط العميق وترحيل روابط Firebase الديناميكية إلى الروابط العامة هي تحديث تطبيق iOS الخاص بك ورمز التطبيق لتلقي الروابط العميقة الجديدة.

نوصي باتباع وثائق الروابط العامة الكاملة هنا حول تكوين تطبيقك للتعامل مع الروابط العميقة، ولكن الخطوات الرئيسية تتضمن ما يلي:

  1. قم بتحديث تكوين مشروعك لتمكين تطبيقك من التعامل مع الروابط العميقة من المجال الذي تم إنشاؤه حديثًا

  2. احصل على الرابط العميق في رمز التطبيق الخاص بك

من أجل تحديث تكوين مشروعك لتمكين تطبيقك من التعامل مع الروابط العميقة، ستحتاج إلى إضافة مجال مرتبط إضافي إلى مشروعك في xCode للمجال الذي تخطط الآن لاستخدامه لاستضافة موقع apple-app-site- الملف المرتبط.

يمكن القيام بذلك عن طريق:

  1. فتح اكس كود
  2. اختيار المشروع الخاص بك في متصفح الملفات
  3. انتقل إلى علامة التبويب التوقيع والإمكانات في إعدادات مشروعك
  4. انتقل لأسفل إلى قسم المجالات المرتبطة
  5. النقر على الزر + لإضافة النطاق الإضافي إلى مشروعك بتنسيق "ارتباطات التطبيق: ".

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

لإنجاز ذلك، قم أولاً بتحديث ملف AppDelegate.swift للرد على الارتباط العالمي عن طريق إضافة التعليمة البرمجية التالية:

func application(_ application: UIApplication, continue userActivity: NSUserActivity,
                 restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
  AppDelegate.showReceivedUrl(userActivity: userActivity);
  return true
}

static func showReceivedUrl(userActivity: NSUserActivity) {
  if userActivity.activityType == NSUserActivityTypeBrowsingWeb {
    let url = userActivity.webpageURL!
    print(url.absoluteString)
}

يتجاوز الكود أعلاه طريقة رد اتصال الرابط العالمي ويسجل عنوان URL للرابط العميق إذا كان موجودًا.

سنستدعي الآن نفس الأسلوب showReceivedUrl من فئة SceneDelegate أيضًا، لأنه إذا كان التطبيق مفتوحًا بالفعل بحلول الوقت الذي نقر فيه المستخدم على الرابط العام، فإن رد الاتصال بالارتباط العام داخل SceneDelegate سيكون هو الذي سيتم استدعاؤه.

func scene(_ scene: UIScene, continue userActivity: NSUserActivity) {
  AppDelegate.showReceivedUrl(userActivity: userActivity)
}

يمكنك اختبار الروابط العامة التي أنشأتها للتو إما عن طريق تشغيل تطبيقك على جهاز فعلي أو جهاز محاكاة .

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

دعم لافتات التطبيقات الذكية

نوصي بشدة باستخدام لافتات التطبيقات الذكية كوسيلة لتزويد المستخدمين بتجربة مماثلة للارتباطات الديناميكية لـ Firebase.

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

ستكون الخطوة الأخيرة للترحيل هي استبدال روابط Firebase الديناميكية المنشورة أو المشتركة بروابط عالمية كلما أمكن ذلك، ومواصلة استخدام الروابط العامة من الآن فصاعدًا.

سيختلف إكمال هذه الخطوة اعتمادًا على مكان وكيفية نشر روابط Firebase الديناميكية الخاصة بك.

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